2017-09-15 47 views
0

對於$ REASONS,我通過rake test創建了一個Rake任務。但是,當我使用包裝任務時,config/environments/test.rb從不需要,因此會發生不希望的事情(發送電子郵件,刪除數據庫等)。當通過自定義Rake任務運行`rake test`時,爲什麼不需要environments/test.rb?

(FWIW,Rails.envENV['RAILS_ENV']在退化情況下仍設置爲test

namespace :organization do  
    desc "Run unit tests." 
    task :unit do 
    puts Rails.env # test 
    Rake::Task["test"].invoke 
    end 
end 

回答

0

你需要通過:environment在耙任務爲它工作。

namespace :organization do  
    desc "Run unit tests." 
    task unit: [:environment] do 
    puts Rails.env # test 
    Rake::Task["test"].invoke 
    end 
end 
+0

感謝您的回答,但這並不能解決問題。 (我實際上已經嘗試了這一點,還有其他解決方案,比如創建/添加一個將'RAILS_ENV'和'Rails.env'設置爲'test'的任務依賴項。) – pdoherty926