ruby-on-rails - Rspec 和 Chrome/headless 标志

标签 ruby-on-rails google-chrome rspec capybara

我有 headless Chrome 和 Chrome 用于我的 Rspec 测试。我想要一个标志在两者之间切换,这样我就可以在需要时看到测试发生,在不需要时隐藏它们。我怎样才能实现类似的东西:

rspec --headless

现在我只是将这个 secret 与 .env var 绑定(bind)在一起:

Capybara.javascript_driver = Rails.application.secrets.headless ? :headless_chrome : :chrome

最佳答案

在你的rails_helper.rb中你应该创建这样的语句:

RSpec.configure do |config|

  config.before(:each) do
    if  ENV['HEADLESS'] == 'true'
      Capybara.current_driver = :selenium_chrome_headless
    else
      Capybara.current_driver = :selenium_chrome
    end
  end
end

然后在运行规范时发送一个变量

$ HEADLESS=true rspec ./spec/features

关于ruby-on-rails - Rspec 和 Chrome/headless 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54469091/

相关文章:

ruby-on-rails - 带有 ruby​​ on rails 的 twitter Bootstrap 模式

python - Native Client (NaCl) 程序可以用 C 或 C++ 以外的语言编写吗?

ruby-on-rails - 如何测试 Rspec 中不存在的 url?

ruby - rspec 它在循环内阻塞

ruby-on-rails - 使用 Rails 5 完成类(class)和模块分配给用户

ruby-on-rails - Elasticsearch 聚合中的首字母匹配

ruby-on-rails - 使用 passenger 在 Apache 上设置 Rails 应用程序 - Rails 似乎无法加载

google-chrome - 将 Chrome 中的 console.log 保存到文件中

google-chrome - 在没有任何插件的chrome开发工具中从POST请求中提取请求正文的最简单方法

ruby-on-rails - 在 Rspec 中测试物化 View