我遇到了黄瓜测试套件的问题,我想不出任何调试方法。
我们有一套相当大的黄瓜功能,所有这些功能都通过了开发机器。问题是当我们在ci服务器上运行整个黄瓜套件时,有几种情况失败,并且当场景试图填充表格时(显然不是在页)。由于随机失败,我认为这是ajax请求的计时问题,但似乎并非如此,因为添加非常大的睡眠(尝试从1到60秒的所有内容)不会改变任何东西。这个场景更加有趣,因为还有另外3个场景运行相同的步骤,在第一个步骤中以相同的顺序失败,除非我删除第一个场景,否则这些场景通过,在这种情况下,第一个运行这些步骤的是一个失败。
有没有任何技巧来调试这种黄瓜的怪异?功能(请记住这些场景总是传递给开发机器,问题出在ci服务器上)。
谢谢!
答案 0 :(得分:0)
我还有机会调试仅在CI上重现的间歇性测试失败。根据我的经验,问题总是归结为几个基本原因:
间歇性黄瓜故障总是难以调试。不要放弃!值得努力弄清楚如何构建一个可测试的,无竞赛的前端。您可以使用capybara-webkit来调试仅限CI的故障。获取在CI上打印出来的javascript控制台输出,然后您可以在javascript中添加打印件以跟踪其状态直到测试失败。您还可以通过hack capybara-webkit打印出有关前端请求的信息。以下是一个示例:https://github.com/joshuanapoli/capybara-webkit/commit/96b645073f7b099196c5d3da4653606e98a453e4