Cucumber 在钩子中使用ENV变量

Cucumber 在钩子中使用ENV变量,cucumber,Cucumber,如何在钩子中使用ENV变量 我在my env.rb文件中设置了一些驱动程序配置,这些配置用于if语句 if ENV['headless_phantom'] Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, window_size: [1280, 1024], js_errors: false, debug: false) end Capybara.defa

如何在钩子中使用ENV变量

我在my env.rb文件中设置了一些驱动程序配置,这些配置用于if语句

if ENV['headless_phantom']
  Capybara.register_driver :poltergeist do |app|
    Capybara::Poltergeist::Driver.new(app, window_size: [1280, 1024], js_errors: false, debug: false)
  end
  Capybara.default_driver = :poltergeist

elsif ENV['headless_chrome']
  Capybara.register_driver :headless_chrome do |app|

    opts = Selenium::WebDriver::Chrome::Options.new
    opts.add_argument '--start-maximized'
    opts.add_argument '--disable-infobars'
    opts.add_argument '--headless'
    Capybara::Selenium::Driver.new(app, browser: :chrome, options: opts)
  end
  Capybara.default_driver = :headless_chrome

...
通常,要调用默认驱动程序以外的驱动程序,我会在IDE或命令行的runner选项中添加以下内容:

headless_chrome = true
我希望做以下几点,以避免我一直使用runner选项,以便在最初编写测试时快速更改驱动程序

before('@chrome_headless') do
  ENV['headless_chrome'] = true
end

为什么不使用cucumber概要文件,然后在那里设置ENV var呢。有关如何使用配置文件的详细信息,请参阅

保持它超级简单!否则,它将成长为一场噩梦来维持