黄瓜用标签自动重新运行失败的场景?

aml*_*szk 13 ruby selenium webdriver cucumber

在我们的构建中,某些情况由于我们无法控制的原因而失败,或者需要很长时间才能正确调试.异步javascript等事情

无论如何,有时候他们有时候他们不工作,所以我认为将标签添加到诸如@rerun_on_failure或@retry之类的场景会很好,这会在构建失败之前重试场景X次.

我知道这不是一个理想的解决方案,但测试仍然很有价值,我们希望保持它没有误报

实际测试未通过链接点击并希望将跟踪事件发送到服务器进行分析(通过javascript).有时,selenium web-driver加载下一页太快,事件没有时间发送.

谢谢

小智 10

我一直在考虑写一些你所描述的东西,但我发现了这个:

http://web.archive.org/web/20160713013212/http://blog.crowdint.com/2011/08/22/auto-retry-failed-cucumber-tests.html

如果您因为非确定性故障而不得不在CI服务器中重新启动构建,那么这篇文章就适合您.

简而言之:他创建了一个名为cucumber的新rake任务:重新运行使用rerun.txt重试失败的测试.在那里添加一些循环应该很容易重试最多3倍(例如).

  • 这很有趣,但我只把它作为最后的手段.最好的办法是从测试中删除所有非确定性行为. (2认同)

Cyr*_*ris 8

更新版本的Cucumber有一个重试标志

cucumber --retry 2
Run Code Online (Sandbox Code Playgroud)

如果失败,将重试两次