Gradleでカバレッジをとる(cobertura)
バージョン - Gradle: 1.3, Java:1.7.0_07
Plugin あり〼
- https://github.com/Mapvine/gradle-cobertura-plugin
- https://github.com/valkolovos/gradle_cobertura
- https://github.com/stevesaliman/gradle-cobertura-plugin
みっつも……とりあえず2番目にしとくよ。
理由は Plugins - Gradle - Gradle Wiki の一番上に乗ってるから。
設定はとてもとても簡単。build.gradle に以下の3行を貼るだけ。
buildscript { apply from: 'https://github.com/valkolovos/gradle_cobertura/raw/master/repo/gradle_cobertura/gradle_cobertura/1.2.1/coberturainit.gradle' }
1.2.1 は Gradle1.1 用のようだけど、 1.3 でも特に問題無し。実行は gradle cobertura とか叩けばOK……なんだけど、ちょっと詰まる。
java.lang.VerifyError とか……
Java5で導入され、Java7でデフォルトonになったチェックに引っかかってるらしい。仕方ないので外します。build.gradle の適当な場所に書いておく。
test.jvmArgs '-XX:-UseSplitVerifier'
これでテストも通り、レポートも出てくれる。
簡単。とても嬉しい。
ちなみにレポートはいつもの場所( build/reports ) に cobertura/index.html が出来てたりするから、それです。
カバレッジは扱いの面倒な数字の一つ*1だけど、だからと言って使わないのはそれはそれで愚かですよね。なので手軽に使えるようにしておきましょう。
*1:と言うか数字は全て扱いが面倒ですね