使用Capybara / Cucumber启动不同的浏览器

时间:2013-06-25 13:57:42

标签: ruby cucumber capybara

我希望能够针对不同的浏览器运行我的测试。我已经编写了以下方法来执行此操作,这是在我的env文件中。

def startbrowser()
  if BROWSER == "ff"
    Capybara.register_driver :selenium do |app|
      Capybara::Selenium::Driver.new(app, :browser => :firefox )
    end


    else
    Capybara.register_driver :selenium do |app|
      Capybara::Selenium::Driver.new(app, :browser => :chrome )
    end
end


  session = startbrowser()
  session.visit(@base_url)

如果提供ff,上面应该启动firefox但是应该默认为chrome,因为这是我用于大多数测试的浏览器。所以我在终端中使用的命令是:cucumber --tags @tests BROWSER = ff。

然而,这不起作用。它没有给我一个错误,但它总是启动firefox,即使我不提供'BROWSER = ff'部分。理论上它应该默认为chrome。如果我在方法中没有命令,我可以成功启动chrome浏览器,但我希望能够在浏览器之间切换并从jenkins运行不同的作业。任何人都知道我在这里做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

问题是您尝试错误地访问环境变量。您应该更改以下行:

if BROWSER == "ff"

...到...

if ENV['BROWSER'] == "ff"