我正在尝试在工作中清理我们的功能套件,我想知道是否有办法让黄瓜重复一个场景并查看是否通过,然后再进入功能中的下一个场景?Phantom 是我的无头 webkit 浏览器 poltergeist 是我的驱动程序。
基本上,我们的构建一直失败,因为盒子被所有的测试压得喘不过气来,而且在一个场景中,页面没有足够的时间来呈现我们正在尝试测试的任何内容。因此,这会产生误报。我不知道什么测试会挂起构建。
最好在每个场景之后都有一个钩子(一个想法)。如果场景通过然后很好地打印该场景的结果并继续前进。但是,如果场景失败,请尝试再次运行它,以确保它不会让构建变得头晕目眩。然后,只有这样,您才会打印该场景的结果并继续进行下一个测试。
有谁知道如何实现它?
我在想类似的东西
After do |scenario|
if scenario.failed?
result = scenario.run_again # I just made this function up I know for a fact this doesn't actually exist (see http://cukes.info/api/cucumber/ruby/yardoc/Cucumber/Ast/Scenario.html)
if !result
Cucumber.wants_to_quit = true
end
end
end
我看到的最初解决方案是:如何使用 Cucumber 重新运行失败的场景?
这很好,但我需要确保
cucumber @rerun.txt
如果测试通过,实际上更正了报告。像
cucumber @rerun.txt --format junit --out foo.xml
其中 foo.xml 是 junit 报告,最初说功能 1、2 和 5 正在通过而 3 和 4 失败,但现在会说 1、2、3、4 和 5 正在通过,即使 rerun.txt 只说重新运行 3 和 4。