ブラウザでの自動テスト環境を実現する Karma をプロジェクトに導入してみた。
今までも grunt-contrib-qunit を使って、PhantomJS を使った自動テストは実現していたんだけど、コードレビュー時に「Firefox ではうまく動いていない」という指摘を貰ったりしたことがあった。
こういう指摘をレビュー時にして貰えるのはありがたいのだけど、Firefox での動作チェックをした上でレビューを依頼するのが正しい姿だと思うし、それができてなかった自分がイケてないなーと思ったのであった。
ということで、多様なブラウザでの自動テスト環境を調べていくうちに Karma へ出会って、いろいろ試行錯誤を繰り返していた。
今回作ったのは、PhantomJS、Chrome、Safari、Firefox の自動テスト環境。あと、karma-ievms を使って IE7、IE8、IE9、IE10、IE11 の環境も用意できるようにしている。フルに使えば、これだけのブラウザでの自動テストが行えるようになる。
Grunt でいうところの grunt-contrib-watch の機能も Karma 本体には含まれているので、「対象にしているファイルが更新されたらテスト実行」という処理が可能なので、「コード修正→テスト実行→(結果を見て)コード修正→テスト実行」の流れがスムーズにできる。
これで、コード品質の向上と動作チェックの工数減らしが実現できるといいなぁ。