【发布时间】:2015-12-23 23:39:51
【问题描述】:
我有 capybara,当我运行我的精选测试时出现错误,它表示测试环境中的待定迁移,但是当运行其他类型的测试时一切都很好。我已经在测试环境中运行了所有迁移,我已经在测试和开发环境中运行了 rails。
这是我的宝石文件
group :development, :test do
.... other gems ....
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'database_cleaner'
gem 'capybara', '~> 2.5.0'
gem 'capybara-webkit', '~> 1.7.1'
gem 'selenium-webdriver'
gem 'poltergeist'
gem 'launchy-rails', '~> 0.0.1'
end
这是我的测试
# spec/features/sign_in_spec.rb
require 'rails_helper'
feature 'Visitor signs up' do
it "signs me in", :type => :feature do
visit new_user_session_path
puts "page: #{page.html.inspect}"
save_and_open_page
end
end
谢谢!
更新:
我只是试试这个命令:
bin/rake db:drop db:create db:migrate RAILS_ENV=test
该命令一切正常。然后我运行我的服务器:
rails s -e test
我的浏览器出现同样的错误,“ActiveRecord::PendingMigrationError” http://localhost:3000/
然后我运行迁移命令 bin/rake db:迁移 RAILS_ENV=test
但它引发了错误“ActiveRecord::StatementInvalid: PG::DuplicateTable: ERROR: 关系“用户”已经存在”
当我运行功能测试时,同样的错误。
【问题讨论】:
-
能否提供您的
rails_helper.rb和spec_helper.rb? -
运行建议的 bin/rake db:migrate RAILS_ENV=tests 会发生什么?
-
你为什么还要在测试环境中运行
rails s? O_o -
仅用于检查迁移是否运行良好
标签: ruby-on-rails capybara bdd