2012-01-18 55 views
8

現在,我正在使用捆綁器來管理我的寶石。 Bundler爲不同的環境加載不同的寶石。只在一定的環境下加載rake rasks?

我有一些使用測試gems(rspec)的rake任務,但是這些會導致未加載gem的生產環境中出現問題。

所以我想要做的只是在測試環境中加載rake任務(和與之相關的require'rspec/core/rake_task'行)。

我不能完全弄清楚這樣做的最好方法。

我目前有:

require "bundler" 
require 'rspec/core/rake_task' 

desc "Task for running Rspec tests" 
RSpec::Rake::SpecTask.new(:spec) 
+0

這有幫助嗎? http://stackoverflow.com/questions/1090176/how-do-i-force-rails-env-in-a-rake-task – microspino

回答

11

如何:

require "bundler" 

unless Rails.env.production? 
    require 'rspec/core/rake_task' 

    desc "Task for running Rspec tests" 
    RSpec::Rake::SpecTask.new(:spec) 
end 

不是最漂亮的解決方案,但它會奏效。

+1

其實,那需要那裏仍然會導致我認爲失敗。但我認爲它可以被包裹在除非。 – GlyphGryph

0

一個可能的解決方案,可能不是所有設置的理想選擇,是將rake任務添加到您的gitignore。