rspec测试使用常规数据库而不是测试数据库

时间:2011-07-06 11:32:42

标签: ruby-on-rails-3 rspec2

我正在使用Rspec,webrat,selenium rc进行测试。

我正在尝试与selenium和rspec进行集成测试。

我刚看了一下我的开发数据库并了解到我的集成测试正在使用我的开发数据库,​​而不是我的测试数据库。

如何配置rails和rspec以及selenium以使用我的测试数据库。

我所有其他测试似乎都在使用我的测试数据库。

3 个答案:

答案 0 :(得分:15)

你有像

这样的行吗?
  ENV["RAILS_ENV"] ||= 'test'
你的spec_helper.rb中的

? 如果用

添加/替换它,它会强制使用测试数据库吗?
ENV["RAILS_ENV"] = 'test'

这可能是你昨天问题的根源 - 重新验证电子邮件吗?

答案 1 :(得分:0)

我面临同样的问题(rspec测试运行反对开发而不是测试环境),同时移植和Rails 2应用程序到Rails 3.更改行

ENV["Rails.env"] ||= 'test'

ENV["RAILS_ENV"] ||= 'test'
spec_helper.rb中的

解决了我的问题。

我意识到RAILS_ENV已经被弃用,转而使用Rails.env,并怀疑端口中有一些不好的东西被强行推翻了。

此处还有一个关于RAILS_ENV和Rails.env的讨论,可以提供更多见解:

Correct Ruby on Rails 3 replacement for ENV["RAILS_ENV"] ||= 'production'?

答案 2 :(得分:0)

根据rspec-rails gem docs,将rspec-rails gem放在Gemfile的开发和测试组中。这是因为测试rake任务在切换到测试环境之前首先加载开发环境。

group :development, :test do
  gem 'rspec-rails'
end

参考文献:https://github.com/rails/rails/issues/7175https://github.com/rails/rails/issues/8591 - rspec加载开发环境