1

當我運行應在測試環境中運行的任務,它在發展中運行。這包括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 

回答

0

的解決方案是使用ENV["RACK_ENV"],而不是說我曾經嘗試過其他的選擇。我仍然不確定爲什麼其他人不工作,但我打算稱這個問題解決。

這麼簡單......

0

改變這一行ENV ||= "test"ENV = "test"spec_helper

修復程序可以在這裏找到:

How to use the test database with Capybara?

+0

我使用的測試:單元,但在我的test_helper的頂部,我試過'ENV [ 「RAILS_ENV」] = 「測試」','RAILS_ENV =「測試「'和'ENV =」test「'。似乎沒有工作。另外,我沒有同時運行服務器(我不這麼認爲)。我跑過'頂部',沒有看到任何看起來像軌道服務器的東西。此外,我嘗試修復鏈接頁面,並沒有任何區別 –

相關問題