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

时间:2015-07-22 14:30:44

标签: cucumber capybara

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

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

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

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

1 个答案:

答案 0 :(得分:0)

您应该使用:poltergeist将ENV变量转换为符号,然后从变量中删除冒号。现在你正在使用“:poltergeist”,这是一个字符串,而不是Capybara.default_driver = ENV['DEFAULT_DRIVER'].to_sym,这是一个符号。

如果ENV['DEFAULT_DRIVER']是“poltergeist”,则

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: false) var7 = lat[indexPath.item] var6 = long[indexPath.item] var5 = items[indexPath.item] var1 = detail[indexPath.item] var2 = date[indexPath.item] var3 = wop[indexPath.item] var4 = ViewController() nextView.locationPassed = var1 //self.performSegueWithIdentifier("DetailPush", sender: self) println("value stored in var1: \(var1)") //println("The selected indexPath is \(indexPath.item + 1)") println("The stored id is: \(storeSend)") } 将有效。