【发布时间】:2011-07-06 11:32:41
【问题描述】:
我正在使用 Rspec、webrat、selenium rc 进行测试。
我正在尝试使用 selenium 和 rspec 进行集成测试。
我刚刚查看了我的开发数据库,发现我的集成测试使用的是我的开发数据库,而不是我的测试数据库。
我如何配置 rails、rspec 和 selenium 以使用我的测试数据库。
我所有的其他测试似乎都在使用我的测试数据库。
【问题讨论】:
我正在使用 Rspec、webrat、selenium rc 进行测试。
我正在尝试使用 selenium 和 rspec 进行集成测试。
我刚刚查看了我的开发数据库,发现我的集成测试使用的是我的开发数据库,而不是我的测试数据库。
我如何配置 rails、rspec 和 selenium 以使用我的测试数据库。
我所有的其他测试似乎都在使用我的测试数据库。
【问题讨论】:
你有没有这样的台词
ENV["RAILS_ENV"] ||= 'test'
在你的 spec_helper.rb 中? 如果您添加/替换它是否会强制使用测试数据库
ENV["RAILS_ENV"] = 'test'
这可能是您昨天问题的根源 - 重新电子邮件验证??
【讨论】:
在将 Rails 2 应用程序移植到 Rails 3 时,我遇到了同样的问题(针对开发而不是测试环境运行 rspec 测试)。换行
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'?
【讨论】:
根据 rspec-rails gem 文档,将 rspec-rails gem 放入 Gemfile 的开发和测试组。这是因为 test rake 任务在切换到测试环境之前先加载开发环境。
group :development, :test do
gem 'rspec-rails'
end
参考:https://github.com/rails/rails/issues/7175,https://github.com/rails/rails/issues/8591 -- rspec 加载开发环境
【讨论】: