如何在Capybara上使用测试数据库?

我使用RSpec,Spork,Capybara和Capybara Mechanic为使用Facebook连接的注册路径编写集成测试。 它通过注册正确导航,但新用户在我的开发数据库而不是测试数据库中创建。

RSpec设置为使用测试环境,并且我确认我在我的规范中运行的任何模型方法都碰到了测试数据库,但所有UI操作都触及了开发。

这是我的测试:

it "go through registration path" do
  print "RAILS_ENV: #{Rails.env}n" # correctly prints 'test'
  print "1) #{User.count}n" # correctly shows the user count in my test database (zero)

  Capybara.current_driver = :mechanize

  visit root_path
  click_link "register"

  # Fill in Facebook Connect form
  fill_in 'email', :with => "bob@example.com"
  fill_in 'pass', :with => "password"
  click_button "Log In"

  print "2) #{User.count}n" # still shows zero users in the test database

end

在测试之后,我可以查看我的开发数据库,​​并在那里创建了新用户。

我已经尝试设置database_cleaner,并没有帮助。

任何人都知道我需要做什么,以便水豚能够击中测试数据库?

导轨3.1.3

rspec 2.7.0

spork 0.9.0

水豚1.1.0

水豚机械化0.3.0.rc3


问题是我有一个独立的开发服务器与测试并行运行,测试默认为同一个地址/端口。 我通过将以下内容添加到spec_helper.rb中解决了这个问题,所以Capybara会使用不同的端口。

Capybara.run_server = true 
Capybara.server_port = 7000
Capybara.app_host = "http://localhost:#{Capybara.server_port}" 
链接地址: http://www.djcxy.com/p/56921.html

上一篇: How to use the test database with Capybara?

下一篇: how to convert html to pdf?