autotestの結果をOSDで表示
開発環境はLinuxなのでgrowlはないんだけど、gnomeの通知システムにメッセージを送るnotify-sendというツールがある。 libnotify-binをインストールしておけば、
notify-send '送信したいメッセージ' -i "アイコン"
で通知を送ることができる。なお、アイコンは/usr/share/pixmaps/に置き、拡張子を除いて記述する。 (多分~/.usr/あたりにも置けると思う)
あと、Autotest:Growlというrubyのモジュールが必要なんだけど、これはZenTestに入ってると思う。 でもって~/.autotestに以下の記述をすれば、growlっぽくtest結果を表示してくれる。
module Autotest::Growl
def self.growl(title, msg, img, pri=0, sticky="")
msg += " at #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"
system "notify-send '#{title}' '#{msg.inspect}' -i #{img}"
end
Autotest.add_hook :ran_command do |at|
results = [at.results].flatten.join("\n")
output = results.slice(/\d+\s+examples?,\s*(\d+)\s+failures?/)
if output
if $~[1].to_i > 0
growl "Tests Failed", "#{output}", "rails_fail", 2, "-s"
else
growl "Tests Passed", "#{output}", "rails_ok", -2
end
else
growl "Tests Errored", "errors", "rails_fail", 2, "-s"
end
end
end
メッセージはgrowl “Tests Passed”, “#{output}”, “rails_ok”, -2のとこを適当にいじれば変えられます。