Ruby on rails 从SQLite 3转换到Postgres后,Rspec测试失败
我正在开发我的第一个Rails应用程序,并使用rspec和capybara进行测试。当我开始创建应用程序时,我使用SQLite进行开发/测试,使用pg进行生产。Heroku遇到了一些问题,并成功地将我的SQLite3数据库转换为Postgres。除了一些通过的rspec测试现在失败外,所有的东西都运行得很好 具体来说,当本地数据库中有测试数据时,rspec测试现在失败。在转为博士后之前,我所有的测试都是通过测试数据的。在我研究这个问题的过程中,我发现另一个stackoverflow帖子报告了类似的问题,但没有找到解决方案。以下是我所做的:Ruby on rails 从SQLite 3转换到Postgres后,Rspec测试失败,ruby-on-rails,postgresql,rspec,sqlite,Ruby On Rails,Postgresql,Rspec,Sqlite,我正在开发我的第一个Rails应用程序,并使用rspec和capybara进行测试。当我开始创建应用程序时,我使用SQLite进行开发/测试,使用pg进行生产。Heroku遇到了一些问题,并成功地将我的SQLite3数据库转换为Postgres。除了一些通过的rspec测试现在失败外,所有的东西都运行得很好 具体来说,当本地数据库中有测试数据时,rspec测试现在失败。在转为博士后之前,我所有的测试都是通过测试数据的。在我研究这个问题的过程中,我发现另一个stackoverflow帖子报告了类似
source 'https://rubygems.org'
gem 'rails', '4.1.8'
gem 'bootstrap-sass', '~> 3.2.0.0'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
group :development do
gem 'spring'
gem 'simple_form'
gem 'bcrypt', '~> 3.1.7'
end
group :development, :test do
gem 'pg'
gem 'rspec-rails', '~> 3.1.0'
gem 'factory_girl_rails'
end
group :test do
gem 'capybara', '~> 2.4.3'
gem 'shoulda-matchers', '~> 2.7.0'
gem 'faker'
gem 'paper_trail', '~> 3.0.6'
gem 'database_cleaner', '~> 1.3.0'
gem 'launchy', '~> 2.4.2'
gem 'rspec-activemodel-mocks'
gem 'selenium-webdriver', '~> 2.43.0'
end
group :production do
gem 'pg'
gem 'rails_12factor'
end
我的数据库yml文件:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
username: xxxxx
password:
development:
<<: *default
database: postgresql
test:
<<: *default
database: postgresql
production:
<<: *default
database: postgresql
default:&default
适配器:postgresql
编码:unicode
游泳池:5
用户名:xxxxx
密码:
发展:
我解决了这个问题:我需要将我的应用程序的名称作为“数据库”放在数据库yml文件的测试部分。所有的考试又通过了。解决方案现在看起来很简单,但并不明显——至少在我学习Rails的这个阶段,我不这么认为。我会离开这篇文章,也许它会帮助其他人。你应该写下这篇文章作为回答,然后接受它。