Ubuntu 上で走る autotest の結果を MacBook の Growl に表示させる方法
こちらのブログでは遅ればせながら、先月末でドリコムを退職し、今月からiKnow! (Cerego Japan) で働いています。
iKnow! でも開発マシンは MacBook のままですが、開発用サーバマシンとして ubuntu を支給されたので、ubuntu から MacBook の開発ディレクトリをマウントして、DB やら mongrel やらは ubuntu 上で動かしています。
ubuntu には(てか apt には?)Mumbles という Mac の Growl に似た notification ツールがあって、そいつから LAN 上の Growl に notification を送れます。
-
~/.autotest
に、以下のように記述しておけば OK
-
require 'autotest/redgreen'
-
-
module Autotest::Mumbles
-
-
def self.mumbles title, msg, successed
-
system "mumbles-send -g bianca.cerego.co.jp \"#{title}\" \"#{msg}\"" unless successed
-
system "mumbles-send \"#{title}\" \"#{msg}\""
-
end
-
-
Autotest.add_hook :red do |at|
-
errors = at.results.slice(/(\d+)\s+tests,\s*(\d+)\s+assertions,\s*(\d+)\s+failures,\s*(\d+)\s+errors/)
-
mumbles "TESTS FAILED", errors, false
-
end
-
-
Autotest.add_hook :green do |at|
-
#res = at.results[/\d+ tests.*$/]
-
res = at.results.scan(/Finished.*failures/m).to_s.gsub(/\e\[32m/,'')
-
mumbles "TESTS PASSED", res, true
-
end
-
end
これで開発マシンと開発サーバが別のマシンでも、快適な autotest 環境を構築できますね。MacBook で autotest を走らせると、開発の手が止まる程遅くなるからな...
ちなみに Growl では notification に緊急度のようなのを付与できて、MacBook ではそれを元に成功と失敗で色分けしたりしてましたが、Mumbles から Growl には title と description しか送れないようです。
上記の設定では、テスト失敗時にだけ Growl に通知して、Growl 側の設定で Mumbles からの通知の緊急度を上げています。











