我更喜欢使用capybara-webkit作为水豚的驱动程序,但不要期望我的团队中的其他开发人员为了做同样的事情而跳过安装QT的束缚。我想从gemfile中删除capybara-webkit,并且只在需要时才使用它作为测试驱动程序。我尝试使用spec_helper.rb文件中的以下代码完成此操作:
begin
require 'capybara-webkit'
driver = :webkit
puts "capybara-webkit has been detected."
rescue LoadError
driver = :selenium
puts "capybara-webkit unavailable. Falling back to Selenium"
puts "For faster, headless integration tests, install capybara-webkit"
end
Capybara.javascript_driver = driver问题是,即使安装了capybara-webkit,请求也会失败。我只能假设这是因为它不在我的应用程序包中。我怎么才能避免这个问题呢?有没有办法解决这个问题,而不需要将capybara-webkit添加到Gemfile中?
发布于 2011-12-13 07:00:15
与其执行require检查,不如检查另一个应该存在的组件?Ruby范围之外的东西。您需要这样做,因为gem在捆绑包中不可用。
发布于 2012-01-04 08:41:28
我想您只需要在Gemfile中添加一个自定义组,并将capybara-webkit放在那里即可。然后,其他开发人员可以安装该捆绑包,但不包括该组。
发布于 2013-11-08 08:39:02
我也喜欢使用两者,一般来说,webkit更快,但有时我喜欢看到浏览器做一些事情(比如当我不知道发生了什么,或者向客户显示)我的解决方案是通过gemfile安装这两个文件,并在spec_helper.rb中设置它
Capybara.javascript_driver = :webkit unless ENV['SHOWJS']这将我的默认设置保留为无头驱动程序,当我想在selenium中看到它时,我可以运行以下命令:
SHOWJS=1 rspec spec/features/user/new_spec.rb如果您使用guard或其他工具,您可能必须导出环境变量,因为我认为您不能简单地传递它。
https://stackoverflow.com/questions/8482100
复制相似问题