CEO of Backflip180, LLC.
先日、sporkとguardでtest/unitで書かれたテストコードを自動実行する環境を構築したのですが、なぜかgrowlにnotifyされません。 Guardfileには次のように:drdオプションを指定しています。
notification :growl
guard :test, :drb => true do
...
end
ネット上にもあまり情報がないようなので、コードを追って解決策を捻り出しました。 test/test_helper.rbのSpork.preforkに次のようなコードを追加します。
Spork.prefork do
...
require 'guard/test/notifier'
require 'test/unit/ui/console/testrunner'
class Test::Unit::UI::Console::TestRunner
alias :old_finished :finished
def finished(elapsed_time)
send :old_finished, elapsed_time
::Guard::Test::Notifier.notify(@result, elapsed_time)
end
end
end
Test::Unit::UI::Console::TestRunnerクラスをオープンしてfinishedメソッドの最後に実行結果をnotifyするようにします。 これでgrowlにnotifyされるようになりました。