Javascript 如何调试随机故障?
我遇到了cucumber测试套件的问题,我想不出任何调试方法 我们有一套相当大的cucumber特性,所有这些特性都传递到开发机器上。问题是,当我们在ci服务器上运行整个cucumber套件时,有两个场景失败了,当场景尝试填充表单(显然不在页面上)时,单独运行它们会使它们随机通过和失败(显然)。由于随机失败,我认为这是ajax请求的时间问题,但事实并非如此,因为添加真正的大睡眠(尝试了从1到60秒的所有方法)不会改变任何事情。这个场景更有趣,因为还有另外3个场景在以相同的顺序运行第一个场景中失败的相同步骤,并且这些都通过了,除非我删除了第一个场景,在这种情况下,第一个运行这些步骤的场景就是失败的场景 有什么技巧可以在cucumber上调试这种奇怪的行为吗?特性(请记住,这些场景总是在开发人员机器上传递,问题在于ci服务器)Javascript 如何调试随机故障?,javascript,ruby,debugging,cucumber,Javascript,Ruby,Debugging,Cucumber,我遇到了cucumber测试套件的问题,我想不出任何调试方法 我们有一套相当大的cucumber特性,所有这些特性都传递到开发机器上。问题是,当我们在ci服务器上运行整个cucumber套件时,有两个场景失败了,当场景尝试填充表单(显然不在页面上)时,单独运行它们会使它们随机通过和失败(显然)。由于随机失败,我认为这是ajax请求的时间问题,但事实并非如此,因为添加真正的大睡眠(尝试了从1到60秒的所有方法)不会改变任何事情。这个场景更有趣,因为还有另外3个场景在以相同的顺序运行第一个场景中失败
谢谢 我也有机会调试仅在CI上重现的间歇性测试失败。根据我的经验,这个问题总是归结为几个基本原因:
间歇性故障总是很难调试。不要放弃!这是值得的努力,以找出如何建立一个可测试的,无种族的前端。您可以使用capybara webkit调试仅限CI的故障。让javascript控制台输出在CI上打印出来,然后可以向javascript添加打印以跟踪其状态直到测试失败。您还可以破解capybara webkit,打印出前端请求的相关信息。这里有一个例子:很抱歉,这个标题太离题了。XDI尝试将驱动程序更改为capybara webkit(我们以前使用的是poltergeist),并且以前间歇性失败的功能不再失败。我想这一定是恶鬼的一个错误,但我不太清楚到底发生了什么。不过谢谢你的提示,我会注意这类事情的。