テストフレームワークmochaとファイル監視watchrで自動テスト
npm install mocha -g npm install should
mochaの--watchオプションが期待通り動けば問題ないんだけど、ホットリロード動いてないのでファイル監視はwatchrでやらせることにした。
guardでもよかったんだけど、guardは皆決まりきったサンプル動かしてる人達が多くて、独自な挙動をとらせようとするとRuby詳しくない自分にはwatchrの方が取り回しがよかった。
gem install rb_fsevent watchr
rb_fseventはMacの場合。それ以外の環境だと別のモジュール(ぐぐれ)が必要
たぶんgrowlnotifyが必要
Growl - Downloads
mochaに渡している項目はこんな感じ。
mocha -c --reporter list -r should --ignore-leaks --growl --compilers coffee:coffee-script
(2012/4/9追記)
mochaの仕様変わって --compilers coffee:coffee-script みたいに指定しないとcoffee-scriptが動かなくなってる
-
- ignore-leaksしてるのはmochaの仕様かはわからないけど、どのクロージャからも参照されない変数があるとリークしてるよ〜って警告が出る。
watchr保存時に対応したspecファイルを自動で実行されるようにする。フォーマットは*.spec.coffeeみたいな感じ。
プロジェクトのルートで設定ファイルを書く。
spec.watchr
watch("(lib|test)(/.*)+.coffee") {|m| fname = m.to_s.split('/')[-1].split('.')[0]+".spec.coffee" puts "======= Tests run #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}" if File.exist?("test/#{fname}") print `mocha -c --reporter list -r should --ignore-leaks --growl test/#{fname}` end }
Rubyあまり書かないのでうろ覚えな感じで書いた。
ファイルの変更の監視を開始する。
$ watchr spec.watchr
これでlib/Character.coffeeを編集するとtest/Character.spec.coffeeが実行されるようになり幸福が実現した。