2012-01-18 9 views
8

今、私は私の宝石を管理するためにバンドラーを使用しています。 Bundlerは異なる環境に応じて異なる宝石を積みます。特定の環境でのみレーキラスクをロードしますか?

テスト用の宝石(rspec)を使用するレーキタスクがいくつかありますが、これらの宝石がロードされていない運用環境では問題が発生します。

私ができることをしたいのは、テスト環境でレーキタスク(およびそれに関連付けられた '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に追加することです。

関連する問題