我将我的应用程序从Rails 4.2.7.1升级到Rails 5.0.0.1,现在我得到随机测试失败。我做的显着改变是添加
$(document).on('turbolinks:load', myOnlyFunctionOnThePage);
现在我的测试都作为套件失败,但几乎总是在单独运行时通过。失败的测试是集成测试。
我在每个步骤中添加了wait_for_ajax
(来自https://robots.thoughtbot.com/automatically-wait-for-ajax-with-capybara)方法,但仍然存在失败。
将超时时间增加到60秒无济于事。
使用:selenium
驱动程序工作(启动浏览器)导致绿色测试。但是,当切换回:webkit
时,随机故障会继续。
使用Capybara :: Webkit config.debug = true
我可以看到这样的错误:
完成“Node.leftClick”并带有响应 “失败({\”class \“:\”ClickFailed \“,\”message \“:\”无法点击 元件 / HTML /体/格[1] / DIV /部分[@ ID = '项目新形式'] /形式[@ ID = 'NEW_PROJECT'] /格[8] /按钮 因为元素重叠 / HTML /体/格[1] / DIV /部分[@ ID = '项目新形式'] /格[@ ID = 'addQuestions'] 位置346,561; \ n当时页面的屏幕截图 失败已被写入 /var/folders/ct/p9d9lm811y75ltkwyxr08gcdl_s5n6/T/click_failed_L66099.png \ “})”
这种情况发生在引导模式出现的地方,但是添加wait_for_ajax
和sleep 5
并没有什么区别。但是,如果我使用debug运行单个it
块,我可以看到即使测试通过也确实记录了此错误消息。
我有什么遗忘吗?同样,测试在此升级之前以及一次运行一个it
块或使用selenium驱动程序时都会通过。
这是一个问题,因为我想在并行和CI上运行我的测试。这两者都需要无头驾驶员。