我有一套使用并行测试在持续集成中启动的测试。在部署之后,环境有点不稳定,所以当套件完成后,重新启动失败的测试(此时环境再次稳定)。
基本上,只有一个jenkins构建,它将执行此操作:
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 ~@wip
--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确定
首次执行--- 75 ---- 10 ---- 65
重新运行------------- 10 ------- 0 ---- 10
这是100%绿色,因为所有问题都是由部署后的不稳定引起的。所以我希望jenkins的junit报告说已经启动了75个测试,75个OK,0个KO或类似的东西。
现在,第一次执行的junit报告说75次测试,我有10个KO;第二个junit说10个测试中有0个KOs。
这可能是一个很好的解决方案吗?可以混合两个Junit报告的结果吗?
我也接受能够在jenkins中显示junit报告,每个报告都带有图表。但我认为jenkins只允许显示一个junit报告图。
答案 0 :(得分:0)
我终于解决了这个问题。
解决方案是创建一个“解析器”,通过重新运行生成的Junit文件搜索(使用RegEx),然后转到原始/第一次运行的Jnuit文件,并重写已通过的那些测试的结果在重新运行期间。
最后,如果重新运行中一切正常,则junit图表为100%绿色,并且没有失败警报。