使用环境变量切换 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
将起作用。
我正在 运行使用 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
将起作用。