我正在使用 Cucumber、Capybara 和 Capybara-webkit 在我的 Ruby on Rails 应用程序中测试不同的场景。
有没有一种方法可以在场景运行且测试失败时检测页面上的任何 JavaScript 错误?作为自动化测试运行的一部分,我们正在使用这些测试来确保我们不会在更改之间破坏功能(包括 JavaScript)。
我可以在测试输出中看到失败,但它并没有通过测试:
http://127.0.0.1:54928/...|16|ReferenceError: Can't find variable: $
http://127.0.0.1:54928/...|16|ReferenceError: Can't find variable: $
...
谢谢!
更新:我发现的一种方法是有一个步骤来尝试执行一些 JavaScript,只有在以前没有发生错误的情况下才有可能。在这种情况下,我会收到这样的错误:
Javascript failed to execute (Capybara::Driver::Webkit::WebkitInvalidResponseError)
./features/step_definitions/....rb:19:in `/^I should not see any JavaScript errors$/'
features/....feature:34:in `Then I should not see any JavaScript errors'
有没有更好的办法?