使用环境变量切换 Capybara 驱动程序

Switching Capybara drivers with environment variables

我正在 运行使用 Capybara 进行 Cucumber 测试,我希望能够 运行 使用不同的驱动程序(如 selenium 或 poltergeist)进行测试。我已经注册了我所有的驱动程序,并且可以通过以下方式使用环境变量在它们之间切换:

if ENV['DEFAULT_DRIVER'] == ":poltergeist" do
  Capybara.default_driver = :poltergeist
end

我的问题是,有没有什么方法可以在不使用 if 块的情况下在环境变量中传递驱动程序?

理想情况下,我想做 Capybara.default_driver = ENV['DEFAULT_DRIVER'] || :selenium 但这会产生错误。

您应该使用to_sym将ENV变量转换为符号,然后从变量中删除冒号。现在您使用的是“:poltergeist”,它是一个字符串,而不是 :poltergeist,它是一个符号。

如果 ENV['DEFAULT_DRIVER'] 是 "poltergeist",

Capybara.default_driver = ENV['DEFAULT_DRIVER'].to_sym 将起作用。