ruby - 如何使用 Poltergeist/Capybara/Rspec 记录 javascript 错误?

标签 ruby rspec phantomjs capybara poltergeist

我使用 Rspec/Capybara 和 Poltergeist 作为驱动程序来为一些大型 Web 应用程序编写测试。

我的问题是我想记录控制台上显示的消息,但到目前为止我还无法这样做。

我知道选项 js_errorsphantomjs_logger,但我遇到了一些问题:

  • 如果我设置 js_errors: false,我在 phantomjs_logger 中指定的文件将保持为空;
  • 如果我设置 js_errors: trueconsole.log 消息将记录在 phantomjs_logger 中指定的文件中,但几乎所有我的规范失败是因为 JavaScript 错误甚至可能与我正在测试的导航示例无关。

知道如何在不违反每个 js 错误规范的情况下保存控制台消息吗?

澄清: 我无法控制开发,我的任务是检查应用程序整个堆栈在各种环境中的稳定性,从前端访问,因此清除所有 JavaScript 错误是不可能的。我正在编写的规范也应该忽略 JavaScript 错误(如果它们不影响界面的使用)。

最佳答案

你不能。 PhantomJS 客户端捕获 JavaScript 错误消息并将它们添加到数组中。然后,当命令完成时,如果 js_errors == true,则检查该数组,如果不为空,则返回 javascript 错误并在测试中触发错误。 poltergeist 中没有其他 API 可以访问这些错误。听起来你需要与你的经理讨论一下,如果 JS 错误明显不影响使用,那么忽略它们是否明智——这是一种潜在危险的开发实践

关于ruby - 如何使用 Poltergeist/Capybara/Rspec 记录 javascript 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919175/

相关文章:

ruby-on-rails - Rails_admin,根据关联更改枚举字段的值

ruby-on-rails - 使用 FactoryGirl 在 Rails 中运行功能测试时未生成对象 ID

python - 如何为 PhantomJS 设置超时?

javascript - 如何在 Jquery 和 PhantomJS 中选择 Javascript 生成的字段?

javascript - 如何每小时自动运行CasperJS脚本?

Ruby:没有将fixnum隐式转换为字符串

ruby-on-rails - 是否可以避免使用 Rails 3 加载 action_controller?

ruby-on-rails - 如何使用 RSpec 测试一个 URL 是否重定向到另一个 URL?

具有有限离散值的 Ruby 类

ruby-on-rails - Rails、Restful Authentication 和 RSpec - 如何测试需要身份验证的新模型