在钩子Cucumber中使用ENV变量

时间:2017-12-13 10:04:40

标签: cucumber

如何在钩子中使用ENV变量?

我的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

我正在寻求以下操作来保存我一直进入跑步者选项,以便在最初编写测试时快速更改驱动程序。

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

1 个答案:

答案 0 :(得分:1)

为什么不使用黄瓜配置文件然后在那里设置ENV var。有关如何使用配置文件的详细信息,请参阅https://github.com/cucumber/cucumber/wiki/cucumber.yml

保持超级简单!否则它将成为一个噩梦来维持。