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