ruby-on-rails - 更改 capybara 驱动程序而不重新启动 spork

标签 ruby-on-rails selenium cucumber capybara spork

我正在使用 Cucumber 和 Capybara 为我的 Rails 应用程序运行集成测试。我还使用 Spork 来加快测试运行速度。 Capybara 支持selenium 和 headless 恶作剧。 headless 浏览器有利于更快的测试运行,但有时我还需要查看浏览器显示的内容。这导致我更改 Capybara 驱动程序并重新启动 spork。

有没有办法在不重新启动 spork 的情况下更改 Capybara 驱动程序?

我尝试过的事情

[1] 在 features/support 中添加了包含驱动程序代码的模块,并在 Spork 的each_run 中引用了该模块。它不起作用并抛出错误。

[2] 使用each_run 更改驱动程序在spork 重新启动之前不会注册更改。

Spork.each_run do
  Capybara.javascript_driver = :poltergeist
end

最佳答案

想通了。 Capybara's github page有一些这方面的信息。这是我所做的:

将以下代码添加到features/support/hooks.rb

Before('@javascript') do
  Capybara.current_driver = :poltergeist
end

可以随时更改此设置,无需重新启动 Spork。我无法找到将其放置在each_run block 中的方法。

关于ruby-on-rails - 更改 capybara 驱动程序而不重新启动 spork,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10908196/

相关文章:

mysql - FATAL : role "root" does not exist, Rails 仅在网站上,Rails 控制台有效

css - Bootstrap 3 可折叠不工作

ruby-on-rails - Rails 3 - 设置环境

ruby-on-rails - Rails 请求返回状态 200 但没有响应数据

java - 如何写一个selenium脚本,让Selenium登录时不被要求输入验证码?

javascript - Chrome 扩展程序可以修改 Window 对象,但无法创建新变量

python - 如何修复 selenium "DevToolsActivePort file doesn' t 在 Python 中存在“异常”

javascript - 如何在 cucumber 测试中传递整数值并验证结果

java - 在 cucumber 中自动打开多个浏览器窗口

java - 从命令行运行时找不到 Cucumber 步骤定义