2017-09-15 50 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