如何调查未在CI上描述的失败黄瓜故障

时间:2019-01-09 22:57:30

标签: ruby-on-rails cucumber

我将水豚从v2.18.0升级到v3.12.0。现在,我的一些黄瓜功能正在无缘无故地失败:

..F..............................................................................................................................................

Failing Scenarios:
cucumber features/users/login:7 # Scenario: Login    
9 scenarios (1 failed, 8 passed)
44 steps (44 passed)
2m41.470s

它说1个场景失败了,但是所有步骤都通过了

这是怎么了?

如何调试此问题?

我正在使用以下gem版本:

rails (5.1.2)
cucumber (3.1.2)
capybara (3.12.0)
selenium-webdriver (3.141.0)

我正在以无头模式使用chromedriver v2.45.615355和google chrome v72.0.3626.28-beta运行测试

1 个答案:

答案 0 :(得分:0)

我从

更改了CI测试脚本
bundle exec cucumber

bundle exec cucumber -b

,我很容易看到失败的原因:

  execution expired (Timeout::Error)
  ...
  /builds/project/features/support/capybara_helper.rb:8:in `wait_until'
  /builds/project/features/support/capybara_helper.rb:21:in `block_and_wait_for_requests_complete'
  ...

事实证明

中发生超时错误
After do
  block_and_wait_for_requests_complete
end

在所有等待我完成JS和机架请求的地方挂上钩。 cucumber -h通过以下方式描述了-b选项:

-b, --backtrace                  Show full backtrace for all errors.