Maven + JaCoCoでjavaの単体テストのカバレッジレポートを作ってみる。
JaCoCoとは?
Javaの単体テストでコードカバレッジのレポートが出力できるライブラリです。
カバレッジはステートメントカバレッジ(C0)とブランチカバレッジ(C1)が取得できます。
JaCoCoの詳細はココ
Mavenの設定
mavenのPluginで簡単に追加できるので、早速使ってみる。
pom.xmlに以下を追加するだけです。
ただし、ドキュメントにはSNAPSHOT版をインストールするように書いてありますが、こちらを使う場合はレポジトリも記載する必要があります。
レポジトリの詳細はこちら。
レポジトリを追加するのが面倒だったので、Central Repository でjacoco-maven-plugin
の最新バージョンを調べてpom.xmlに記載します。
<project> |
以下のコマンドでゴールの詳細一覧を表示できます。$ mvn help:describe -Dplugin=org.jacoco:jacoco-maven-plugin -Ddetail
カバレッジレポートを作る
カバレッジレポートは次のコマンドで生成できます。コマンドの実行が完了するとtarget/site/jacoco/index.html
にレポートが生成されます。
$ mvn clean jacoco:prepare-agent test jacoco:report |
jacoco:prepare-agent
でtestのargLineにjacoco.execを出力するように指定します。test
実行するとtarget以下にjacoco.execが生成されます。jacoco:report
でjacoco.execを実行してhtmlを生成しているっぽいです。
レポートを確認
ブラウザから確認してみる。GUIであればファイルをダブルクリックでも確認できます。$ cd target/site/jacoco/
$ python -m SimpleHTTPServer 8080
localhost:8080
にブラウザで接続すると次の様な画面が表示されます。
数字だけでなくコードも色付きで確認できます。
まとめ
CIと組み合わせて使ったら夢が広がりそう。C0, C1のレポートが簡単に作れるのでなかなかいい感じですね。
おわり。