2014-10-16 50 views
5

我有一套测试是在使用并行测试的持续集成中启动的。部署后环境有点不稳定,因此套件完成时,失败的测试会重新启动(此时环境会再次稳定)。如何在重新运行后报告黄瓜测试?

基本上,仅存在一个詹金斯构建,并且它将执行该:

task :jenkins1_with_rerun do 
selenium_successful = system "bundle exec parallel_cucumber features/web/ -o \"-p jenkins1\" -n 3" 
p 'start rerun' 
rerun_successful = run_rake_task("features:jenkins_rerun") 

unless selenium_successful || rerun_successful 
    raise 'Cucumber tests failed' 
end 
end 

第一执行启动套件具有平行测试。这里是黄瓜配置文件:

jenkins1: 
    <%= std_opts %> 
    HEADLESS=true 
    --tags @part1 
    --tags [email protected] 
    --format junit 
    --out log/junit 
    --format ParallelTests::Cucumber::FailuresLogger 
    --out parallel_cucumber_failures.log 

在这之后完成。第二次执行开始,启动记录在文件中的失败测试。该执行的黄瓜档案是这样的:

jenkins_rerun: 
    ENVIRONMENT=master 
    SCREENSHOT=true 
    HEADLESS=true 
    --format pretty 
    --no-source 
    --format junit 
    --out log/junit_rerun 
    @parallel_cucumber_failures.log 

现在。一切正常。唯一的问题是我使用jenkins中的junit报告来制作失败和成功的测试图。我可能有这样的报道:

-------------------测试--- KO --- OK

首先执行--- 75- --- 10 ---- 65

重新运行------------- 10 ------- 0 ---- 10

这是100%的绿色,因为所有问题都是部署后不稳定造成的。所以我希望詹金斯的junit报告说75个测试已经启动,75个OK,0个KO或者其他相似的东西。

现在,第一次执行的junit报告说75次测试中,我有10个KO;第二个junit说10次测试中有0个KO。

enter image description here

什么可能是一个很好的解决这个?有可能混合两个Junit报告的结果?

我也会接受能够在jenkins中显示junit报告,每个报告都带有一个图表。但我认为jenkins只允许显示一个junit报告图。

+0

看看[this](https://pushprajsingh05.wordpress.com/2015/01/12/watir-test-reports/)博客。用简单的步骤生成报告的真正好方法。 – paul 2015-01-24 18:05:39

回答

0

我终于解决了这个问题。

解决方案是创建一个“解析器”,通过重新运行生成的Junit文件搜索(使用RegEx),然后转到原始/第一次运行的Jnuit文件,并重写这些测试的结果在重新运行期间通过。

最后,如果在重新运行中一切正常,则junit图是100%绿色,并且没有失败警报。

+0

你好,有关你如何实现这一点的更多细节?试图在此刻做同样的事情,谢谢 – Richlewis 2016-06-30 08:50:14