Railsのプラグインは非常に便利な仕組みなのですが、pluginのテスト とうまく付き合うにはちょっと工夫が必要です。
plugin用に書かれているテストは、二通りの方法で実行される可能性があります。
- plugin ディレクトリの中で
rake
コマンドた実行された場合 - RAILS_ROOT
から rake test:plugi
が実行された場合ns
いくつかのプラグインは、上記の片方のケースのみを想定して test が書かれている場合があり、想定されていないケースからテスト が実行された場合、多くは沢山のエラーを出すようになります。
このような場合、プラグインディレクトリのRakefileに手を加えて、 呼び出し元に応じて処理を分けたりすれば、一見うまくいきそうですが、 そう簡単にはいきません。
Railsの test:plugi
の仕組みは、プラグインディレクトリの
Rakefileを参照せずに、直接 test
ディレクトリの中身を実行する
からです。
この挙動はあまり良くないと思うのですが、とりあえず、
rake test:plugi
から実行するとエラーを出すプラグインの
テストディレクトリの名前を plugin_tes
等に変更して、
プラグインのRakefileを以下のように書き換えることで回避できます。
Rakefile
1 desc 'Test the acts_as_taggable_on_ steroids plugin.' 2 Rake::TestTask.new(:test) do |t| 3 t.libs << 'lib' 4 t.pattern = 'plugin_tes t/**/*_test.rb' 5 t.verbose = true 6 end
これによって、上記 1 のケースでは正常に動作し、2 のケースではSkipされるため、エラーの山を見ることから逃れられます。
posted by
genki
on Thu 15 Nov 2007
at 02:13