重播后如何报告黄瓜测试?

时间:2014-10-16 15:23:30

标签: ruby junit jenkins report watir

我有一套使用并行测试在持续集成中启动的测试。在部署之后,环境有点不稳定,所以当套件完成后,重新启动失败的测试(此时环境再次稳定)。

基本上,只有一个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。

enter image description here

这可能是一个很好的解决方案吗?可以混合两个Junit报告的结果吗?

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

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题。

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

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