2011-02-10 94 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

相關問題