JavaScriptのテストランナー「testem」を試してみました。

こんにちは、中川です。
今回は「インタラクティブなJavaScriptテストフレームワークTestem 」にて紹介されていた、
JavaScriptのテストランナー「testem」を試してみたいと思います。

※動作確認は、Mac OS 10.7、Node-v0.8.0 にて行ないました。

■testem

https://github.com/airportyh/testem

■インストール

 


$ npm install -g testem
$ brew install phantomjs

※testem では、phantomjsも利用できますのでインストールしておきます。

■動作確認

プロジェクトのディレクトリにて、コマンドを実行します。


$ testem

この状態で色々なブラウザで「http://localhost:7357」にアクセスすると
テストするブラウザが追加されます。

では、READMEを参考にテストを作成します。


// hello_spec.js
describe('hello', function(){
    it('should say hello', function(){
        expect(hello()).toBe('hello world')
    })
})

// hello.js
function hello(){
    return "hello world"
}

ファイルを更新する度に、テストが実行されます。
今回は以下のように4つの環境でテストが成功したのを確認できました。

テストフレームワークのデフォルトはJasmineですが、
testem.ymlファイルを設置しfamework指定にてQUnitとMochaも利用できるようです。

また、「ci」オプションを使うと、次々とブラウザを起動・実行・終了し、
結果をTAP形式で出力してくれます。Jenkinsなどとも連携できそうですね。


$ testem ci
# Launching Chrome
# .
ok 1 - Chrome  hello should say hello.
.# Launching Firefox
# .
ok 2 - Firefox  hello should say hello.
# Launching Safari
# .
ok 3 - Safari  hello should say hello.
# Launching PhantomJS
# .
ok 4 - PhantomJS  hello should say hello.
1..4
# tests 4
# pass  4
# ok

このように、とても簡単にインストールから実行まで行うことができました。
JavaScriptのテストも今後しっかりと書いていきたいですね。