アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

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のテストも今後しっかりと書いていきたいですね。