如何配置Cucumber和Capybara使用Rack :: Test驱动程序?

时间:2014-05-29 10:17:18

标签: cucumber capybara

我是Capybara的新手。

这是我在env.rb文件中的配置

Capybara.configure do |config|
  config.run_server = false
  #config.default_driver = :selenium
  config.default_driver = :rack_test
  config.app_host = 'point to my localhost port 3000'

end

如果我将default_driver设置为:selenium,那么一切都运行正常。但是我需要将驱动程序设置为:rack_test,这样在运行cucumber命令时,它将无法打开Web浏览器。

非常感谢,

P / S如果您是专家,请告诉我学习路径,我不希望有人向他们展示自己。

2 个答案:

答案 0 :(得分:1)

我认为您要对由capybara控制的测试服务器进行测试(这是正常的方法),而不是针对您的开发实例(localhost:3000上的实例)或临时服务器或其他东西进行测试。 / p>

首先,配置capybara以运行您的Rails应用程序。通常的做法是将cucumber-rails gem添加到您的Gemfile中,并在env.rb中添加require 'cucumber/rails'。您还可以set up capybara to run Rails (or any Rack app) manually

完成后,capybara将默认执行您想要的操作(使用Rack :: Test驱动程序)。删除你从env.rb中显示的配置,Cucumber / capybara将以你想要的方式工作。

如果您还希望某些方案使用Javascript,请使用@javascript标记这些方案并添加

Capybara.javascript_driver = :selenium

到您的env.rb. Capybara将继续将其Rack :: Test驱动程序用于没有标记的场景,并将使用其Selenium驱动程序用于带有标记的场景。

答案 1 :(得分:0)

感谢Dave在此期间帮助我。简而言之,为了运行"黄瓜"没有触发打开Web浏览器(这是机架测试),这里是配置:

1>文件env.rb。

require 'cucumber/rails'

上面只有1行就足够了。

2 - ;文件.feature

功能:发布新产品

Feature: Post a new Product
Scenario: Open new product page
Given I open new product site
When I input new product
Then I should see the product created confirmed

顺便说一下,我们不需要" Capybara.javascript_driver =:selenium"在文件env.rb中。

我需要学习关于水豚和黄瓜的许多棘手的事情