在我们的构建中,某些情况由于我们无法控制的原因而失败,或者需要很长时间才能正常调试。事情如异步javascript等。
无论如何,关键是有时他们工作有时他们没有,所以我认为将标签添加到诸如@rerun_on_failure或@retry之类的场景会很好,这会在失败之前重试场景X次数。建立。
我知道这不是一个理想的解决方案,但测试仍然很有价值,我们希望保留它而不会有误报
实际测试未能点击链接并希望将跟踪事件发送到服务器进行分析(通过javascript)。有时,selenium web-driver加载下一页太快,事件没有时间发送。
由于
答案 0 :(得分:10)
我一直在考虑写一些你所描述的内容,但我发现了这个:
如果您因为非确定性故障而不得不重新启动CI服务器中的版本,那么此帖子适合您。
简而言之:他创建了一个名为cucumber的新rake任务:重新运行使用rerun.txt重试失败的测试。在那里添加一些循环应该很容易重试最多3倍(例如)。
答案 1 :(得分:6)
更新版本的Cucumber有一个重试标志
cucumber --retry 2
如果失败则会重试两次