【发布时间】:2013-11-30 17:07:07
【问题描述】:
我最近在一台新机器上设置了 Rails 开发环境。我现在正在尝试运行应用程序的测试套件,但不断收到数据库错误。
Failure/Error: user = FactoryGirl.create(:user)
PG::ConnectionBad:
FATAL: database "test-db" does not exist
我的 database.yml 文件设置正确。我已经运行 psql -l 并且 test-db 实际上确实存在,这通过运行 rake db:create 得到确认,我收到“已经存在”消息。
我已经运行了rake db:migrate 和rake:test:prepare,但错误仍然存在。
我的测试设置如下
group :test do
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'capybara'
gem 'guard-rspec'
gem 'spork-rails'
gem 'guard-spork'
end
开发数据库没有问题。
为什么我得到一个 db does not exist 错误,我可以做些什么来调试它?
【问题讨论】:
-
尝试使用测试 ENV
RAILS_ENV=test rails c进入控制台。你能做到吗?你能在那里创造记录吗?更多细节:创建测试数据库后,您是否重新启动了 guard/spork? -
感谢 gotva。我可以使用
RAILS_ENV=test rails c访问控制台,但是我无法在测试数据库中创建记录。使用开发控制台/数据库,我可以毫无问题地创建记录。顺便说一句,我刚刚删除了我的本地数据库并重新创建并重新迁移了它们。我不知道为什么两个数据库(开发和测试)的行为不同。欣赏更多想法,并乐于提供更多信息
标签: ruby-on-rails rspec capybara factory-bot