JSCover
- HTML5 APIs
- UI ライブラリ
- テスト支援
- ドキュメント
- コード品質ツール
- バリデータ
- キー入力支援
- テストダブル
- ハイブリッドアプリケーション
- 継続的インテグレーション
JavaScriptのコードカバレッジを測定するツールです。
ここではJSCoverに関する情報を載せてゆきます。
JSCover概要
- 計測したいJavaScriptコードにインストルメント処理を行います。
- インストルメント処理:コードの各行ごとに「この行を通過した」ことを記録するコードが挿入されます。
- 処理を行ったJavaScriptコードを実行した結果をレポートとして保管できます。またレポートにアンロード/テストされていないJavaScriptコードを保存することが可能です。
カバレッジ測定&レポート保管までの手順
① ダウンロード
まずはココからダウンロードしましょう。
このページではver1.0.7で作業を行っております。
ダウンロードしたら適当な場所に解凍します。ここではC:\JSCover-1.0.7に解凍したと想定します。
② サーバの起動
コマンドプロンプトを起動し、解凍したフォルダに移動します(ここではC:\JSCover-1.0.7)。
テスト対象コードの場所は、
C:\workspace\test_project\src\main\webapp\test
にあると想定します。
下記コマンドを打ちます。
java -Dfile.encoding=UTF-8 -jar target/dist/JSCover-all.jar
-ws --document-root=C:\workspace\test_project\src\main\webapp
--report-dir=target --port=81
--document-root
- テストコードとテストコードが読み込むすべてのファイルを含むディレクトリを指定します。
--report-dir
- 出力先ディレクトリを指定します。
--port
- ポートの指定。デフォルトは8080。今回は81(任意)を指定します。
コマンドが通らない:
読み込むファイルがUTF-8にencodingされていますか。
読み込むファイル全てを読み込めるディレクトリを--document-rootで指定していますか。
--portを指定していますか。指定していない状態でTomcatが起動しているとポートが被ります。
カバレッジを計測しないディレクトリの指定
上記で取得されるカバレッジではh5やjqueryのように、測定する必要のないファイルも入っています。
--no-instrument=URL
- 測定しないディレクトリを指定すると除外できます。
上記コマンドでは、webapp直下のres/libとtestディレクトリを除外している。
③ カバレッジの取得
http://localhost:81/jscoverage.html?test/unit/common/data-source-test.html
上記URLに接続します。リクエストパラメータは--document-rootからテストコードへの相対パスです。
Summaryタブからカバレッジを確認できます。
④ レポートの保管、変換
レポートの保管
StoreタブのStore Reportボタンを押すことで保管できます。
保管先は-report-dirで指定したディレクトリです。
テストコードの最後に以下を追記すると、自動でレポートを保管します。
if (window.jscoverage_report) {
jscoverage_report();
}
レポートの変換
CI(Jenkins)で読める形式のxmlを出力する方法は、
レポートを保管後、下記コマンドを実行します。
java -cp target/dist/JSCover-all.jar jscover.report.Main --format=COBERTURAXML target C:\workspace\test_project\src\main\webapp\test
⑤ サーバの停止
コマンドプロンプトを閉じます。
または「Ctrl+C」でも可能です。