Railsのプラグインは非常に便利な仕組みなのですが、pluginのテスト とうまく付き合うにはちょっと工夫が必要です。

plugin用に書かれているテストは、二通りの方法で実行される可能性があります。

  1. plugin ディレクトリの中で rake コマンドた実行された場合
  2. RAILS_ROOT から rake test:plugins が実行された場合

いくつかのプラグインは、上記の片方のケースのみを想定して test が書かれている場合があり、想定されていないケースからテスト が実行された場合、多くは沢山のエラーを出すようになります。

このような場合、プラグインディレクトリのRakefileに手を加えて、 呼び出し元に応じて処理を分けたりすれば、一見うまくいきそうですが、 そう簡単にはいきません。

Railsの test:plugins の仕組みは、プラグインディレクトリの Rakefileを参照せずに、直接 test ディレクトリの中身を実行する からです。

この挙動はあまり良くないと思うのですが、とりあえず、 rake test:plugins から実行するとエラーを出すプラグインの テストディレクトリの名前を plugin_test 等に変更して、 プラグインの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_test/**/*_test.rb'
   5    t.verbose = true
   6  end

これによって、上記 1 のケースでは正常に動作し、2 のケースではSkipされるため、エラーの山を見ることから逃れられます。

posted by Png genki on Thu 15 Nov 2007 at 02:13

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry194
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ