Growl 通知テストランナー
[追記1 17:45]
@IanMLewis が pynotify に対応してくれてます。仕事はやい。
次は id:nullpobug が Snarl に対応してくれるのを期待。
[追記2 22:15]
上の追記1で期待アゲしたように、id:nullpobug が Snarl 対応してくれましたよ!
------------
BPStudy#29 にて id:t-wada さんが TDD のデモされてる際、autotest の結果を Growl 通知させてました。お、これいいなーと思ってたんですが、autotest で Growl 通知って Ruby とかじゃ普通な感じなんですかね?
Python でも autotest 的なものがないものかと思っていたところ、id:nullpobug が Modipyd いいよー、とオススメしてくれました。
ならばと思い、Growl 通知する簡単なテストランナーを作ってみましたよ。既に誰かが作ってるんでしょうけど。
growlnotify のインストール
こいつを使えばコマンドライン上から Growl 通知させることができます。Growl の .dmg に入ってますので、インストールしちゃって下さい。
以下のように打って、Growl 通知されればOK
$ growlnotify -n "Growl Text Test Runner" -m test
Growl 設定
一回でも *growlnotiry -n "Growl Text Test Runner"* を実行していれば、「システム環境設定」->「Growl」->「アプリケーション」一覧に "Growl Text Test Runner" というアプリが登録されていると思います。
お好みの表示スタイルを選びます。自分は Music Video にしてます。
表示スタイルの優先度「緊急」を赤、「重要でない」を緑なんかにしてやるといいかもしれません。あとの設定はお好みで。
超簡単な説明
unittest.TextTestRunner を継承して、テスト結果を growlnotify に投げてるだけです。アイコンを作るほうが時間がかかってるんですが、誰かカッコいいアイコン作ってくれませんか…
growltestrunner パッケージを Python パスが通ってる場所に置いて下さい。
使い方
TextTestRunner の代わりに使ってみたり
#!/usr/bin/env python # -*- coding:utf-8 -*- import unittest from growltestrunner import GrowlTestRunner class DemoTest(unittest.TestCase): def test_true(self): self.assert_(True) def test_false(self): self.assert_(False) if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(DemoTest) GrowlTestRunner().run(suite)
Modipyd で使ってみたり
$ pyautotest -r growltestrunner.GrowlTestRunner
テストが実行されるたびに Growl 通知されます。