如何使用 Poltergeist/Capybara/Rspec 记录 javascript 错误?
How can I log javascript errors with Poltergeist/Capybara/Rspec?
我正在使用 Rspec/Capybara 和 Poltergeist 作为驱动程序来为一些大型 Web 应用程序编写测试。
我的问题是我想记录出现在控制台上的消息,但到目前为止我无法这样做。
我知道选项 js_errors
和 phantomjs_logger
,但我遇到了一些问题:
- 如果我设置
js_errors: false
,我在 phantomjs_logger
中指定的文件保持为空;
- 如果我设置
js_errors: true
,console.log
消息将记录在 phantomjs_logger
中指定的文件中,但几乎所有的规范都失败了,因为
javascript 错误甚至可能与我正在测试的导航示例无关。
知道如何在不破坏每个 js 错误规范的情况下保存控制台消息吗?
澄清:
我无法控制开发,我的任务是检查各种环境中应用程序的整个堆栈的稳定性,从前端访问,因此清除所有 javascript 错误是不可能的.如果它们不影响接口的使用,我正在编写的规范也应该忽略 javascript 错误。
你不能。 PhantomJS 客户端捕获 javascript 错误消息并将它们添加到数组中。然后当命令完成时,如果 js_errors == true,则检查该数组,如果不为空,则返回 javascript 错误并在测试中触发错误。 poltergeist 中没有其他 API 可以访问这些错误。听起来您需要与您的经理讨论忽略 JS 错误的智慧,如果它们显然不会影响使用 - 这是一种潜在危险的开发实践
我正在使用 Rspec/Capybara 和 Poltergeist 作为驱动程序来为一些大型 Web 应用程序编写测试。
我的问题是我想记录出现在控制台上的消息,但到目前为止我无法这样做。
我知道选项 js_errors
和 phantomjs_logger
,但我遇到了一些问题:
- 如果我设置
js_errors: false
,我在phantomjs_logger
中指定的文件保持为空; - 如果我设置
js_errors: true
,console.log
消息将记录在phantomjs_logger
中指定的文件中,但几乎所有的规范都失败了,因为 javascript 错误甚至可能与我正在测试的导航示例无关。
知道如何在不破坏每个 js 错误规范的情况下保存控制台消息吗?
澄清: 我无法控制开发,我的任务是检查各种环境中应用程序的整个堆栈的稳定性,从前端访问,因此清除所有 javascript 错误是不可能的.如果它们不影响接口的使用,我正在编写的规范也应该忽略 javascript 错误。
你不能。 PhantomJS 客户端捕获 javascript 错误消息并将它们添加到数组中。然后当命令完成时,如果 js_errors == true,则检查该数组,如果不为空,则返回 javascript 错误并在测试中触发错误。 poltergeist 中没有其他 API 可以访问这些错误。听起来您需要与您的经理讨论忽略 JS 错误的智慧,如果它们显然不会影响使用 - 这是一种潜在危险的开发实践