當我運行應在測試環境中運行的任務,它在發展中運行。這包括rake test:(units/functionals/integration)
和rake db:test:prepare
。一個副作用是每次運行測試時它都覆蓋我的數據庫。我重命名了開發數據庫,現在它一直抱怨說它找不到我的舊數據庫(database.yml
中的那個)。我的application.rb
的頂部設置了require 'rails'
開發環境。我是否缺少某種簡單的配置?發展環境不受運行所有測試相關的任務 - 的Rails 3
編輯:如果我跑我的測試與RAILS_ENV=test
追加,它們在測試環境中運行。但是,我實際上無法運行它們,因爲我有未完成的遷移(所有這些遷移)。運行rake db:test:prepare RAILS_ENV=test
給了我相同的pending-migrations錯誤。
更新:數據庫遷移,和我的測試會。我仍然覺得每次運行我的測試都不是RAILS_ENV=test
不是正確的做法
更新:我發現如果將railties中的def env
更改爲默認爲'test',則環境變爲測試。也就是說如果你正在使用水豚和有軌服務器在開發模式下運行,那麼水豚將使用代替開機測試實例的
def env
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end
我使用的測試:單元,但在我的test_helper的頂部,我試過'ENV [ 「RAILS_ENV」] = 「測試」','RAILS_ENV =「測試「'和'ENV =」test「'。似乎沒有工作。另外,我沒有同時運行服務器(我不這麼認爲)。我跑過'頂部',沒有看到任何看起來像軌道服務器的東西。此外,我嘗試修復鏈接頁面,並沒有任何區別 –