autospecでテストを自動化

zen testのautotestという機能を使うと
テストコードを修正して保存する度に
自動的にテストが実行されます。


↓の実演動画内で稼働していて、便利そうだなと思ったので
使ってみました。
(growlでの通知はまた次回)
簡単で便利で最高です。
スはスペックのス〜RSpecによるテスト駆動開発の実演 - うんたらかんたらRuby - Rubyist

install

$ sudo gem install ZenTest

autospec

rspec入れるとついてくるautospecコマンドを実行すれば
自動でテストされるようになります。

$ autospec
loading autotest/rspec
/opt/local/bin/ruby /Users/rochefort/.gem/ruby/1.8/gems/rspec-1.3.0/bin/spec --autospec /Users/rochefort/work/ruby/rspec/bowling/spec/game_spec.rb 
.........

Finished in 0.020817 seconds

9 examples, 0 failures


rspecのオプションは
spec.optsに書いておけばOKです。

#spec.opts
--colour
--format specdoc


spec/game_spec.rbを更新する度に、テストが自動実行される

$ autospec
loading autotest/rspec
/opt/local/bin/ruby /Users/rochefort/.gem/ruby/1.8/gems/rspec-1.3.0/bin/spec --autospec /Users/rochefort/work/ruby/rspec/bowling/spec/game_spec.rb -O spec/spec.opts 

Game すべてガターの場合
- スコアは0点

Game すべて1ピンの場合
- スコアは20点

Game ストライクの場合
- スコアは24点

Game パーフェクトゲーム場合
- スコアは300点

Game Game スペアの場合
- スコアは21点

Game Uncle Bobの受け入れゲームの場合
- スコアは133点

Game 10フレーム目の場合 1投目がストライクの場合
- スコアは17点

Game 10フレーム目の場合 2投目がストライクの場合
- スコアは14点

Game 10フレーム目の場合 スペアの場合
- スコアは14点

Finished in 0.024603 seconds

9 examples, 0 failures

終了は

ctrl + C を2回