2011-02-10 92 views
3

我使用rails (3.0.4)rspec-rails (2.5.0). When I run轨产生的RSpec:安装 it produces spec_helper.rb`包含此行:当我运行rake spec我得到这样的警告在终端如何替换Rspec的ENV [“RAILS_ENV”] || ='test'在Rails 3.0中已弃用?

ENV["RAILS_ENV"] ||= 'test' 

DEPRECATION WARNING: RAILS_ENV is deprecated. Please use ::Rails.env. 

这并不令人讨厌,因为它只在我的Spork.prefork中运行一次,但如果可能的话,我希望通过该弃用。我是Rails的新手,在rspec-rails issues或其他任何地方都没有发现这一点。

回答

6

我在GitHub issue响应Dup的:

这一警告是告诉你的是,不断RAILS_ENV已被弃用,而不是环境变量ENV["RAILS_ENV"]。如果您克隆Rails回购并检出v3.0.4标记并搜索RAILS_ENV,您会发现Rails本身在多个地方使用ENV["RAILS_ENV"]

必须来自您的应用程序的其他地方。

2

必须是Rails 3.0.4中的新增功能。这应该工作:

从规格/ spec_helper.rb删除ENV["RAILS_ENV"] || = 'test'

外观为require rspec/rails线。

在它之后立即加上::Rails.env ||= 'test'

这是一个好主意,在rspec-rails tracker上打开一个问题,因为这将需要改变。

+0

感谢您的修复。 [已报告的问题](https://github.com/rspec/rspec-rails/issues/328)。 – Turadg 2011-02-20 22:33:12

+1

更新,这是行不通的。 Rails.env在那个时候返回`development`,所以`|| =`什么都不做。我花了一段时间才弄明白为什么我的测试在我的开发数据库上运行。 :) – Turadg 2011-02-25 21:36:20

相关问题