これまでRSpecとautotest(zentest)を使ってたのだけど、最近はみんなminitestだな、とかなんとか聞いたのでminitestも使ってみる。
で、自動実行するためにGuardを使う。Rails4とかで使われてるのかな?
gemspecに書いて
bundle install
gem.add_development_dependency "guard-minitest"
もちろん普通にgem install
してもいいし、Gemfileに書いてもいい。 Guardfileという設定ファイルを生成するために
% bundle exec guard init minitest
Guardfileの基本的なところについては割愛。 ファイル保存のタイミングでテストするためにrb-fsevent使う(WindowsとかLinuxの場合はほかのものを使う)
gem.add_development_dependency "rb-fsevent"
テスト書いて、% guard
すると、ファイル保存のたびにテストされる。以下、Growlで通知させる話。
gem growlを使う。
gem.add_development_dependency "growl"
を追加して、bundle install
してguard
し直す。 が、通知されない。
Growl2.0になって、GrowlNotifyを入れてないせいだった。
http://growl.info/downloads#generaldownloads からダウンロードしてインストール。
改めて
% guard
適当にファイルいじって保存してテストを走らせる。通知出た。
が、何故か1回ファイル保存するごとに2回ずつ通知される。
よくみたらテスト自体が2回ずつ実行されてる。
Guardfileにguard 'minitest' do endが2個あった。
guard init minitest
をしたときに、Gemfileがあるならbundle execしたほうがいいんじゃない?って出力されたのでもう一回bundle exec guard init minitest
したらGuardfileに追記されていたせいだった。もう一回
guard init
してみたら3個になって、There are 3 definitions in your Guardfile for 'minitest', you may want to clean up your Guardfile as this could cause issues.
っていうのが出てた。2回目のときにも出ていたんだろう。必要ない分を消したらちゃんと1回だけ実行されて通知も1個になった。
0 件のコメント:
コメントを投稿