Linux環境でautotest
Ubuntuのデスクトップ環境でscreenを使わずに、
screenでやっているように常にautotestの結果を表示させたかったのを
いろいろやってみたので晒してみる。
やってみたのは、以下の画像。
使ったのは、mumblesというLinuxデスクトップに
MacのGrowlぽいのを表示するアプリを利用した。
インストールは、Ubuntuだとmumblesのページからdebパッケージを取ってきて
$ sudo dpkg -i mumbles_0.4-1_all.deb
したけど、パッケージが足りなかったので、先にこっちをする。
$ sudo aptitude install python-setuptools
これで、アプリケーションのメニューにmemblesがあるので実行すると
右上のパネルに緑の丸のアイコンが表示される。
端末から
$ mumbles-send "hogehoge" "fugafuga"
とするとポップアップでメッセージが表示される。
これを使って、autotestのメッセージを表示させてみる。
他の人の.autotestの設定を色々見て作ったのが以下の.autotest
Autotest::HOOKS.delete(:interrupt) class Autotest::Mumbles def self.mumbles(msg1, msg2="") `mumbles-send "#{msg1}" "#{msg2}"` end Autotest.add_hook :initialize do |at| mumbles "初期化中" end Autotest.add_hook :run do |at| mumbles "開始" end Autotest.add_hook :ran_command do |at| results = [at.results].flatten.join("\n") output = results.slice(/(\d+)\sexamples?,\s*(\d+)\s.*failures?(?:,\s*(\d+)\s.*pendings?)?/) if output ex,fail,pend = $~.captures.map {|e| e.to_i} if 0 < fail mumbles "RED", "FAIL #{ex}ex, F:#{fail} " elsif 0 < pend mumbles "YELLW", "Pend #{ex}ex, F:#{fail} P:#{pend}" else mumbles "GREEN", "All Green #{ex}ex" end end end Autotest.add_hook :quit do |at| mumbles "終了" end end