しおしお

IntelliJ IDEAのことなんかを書いてます

Gradle&JUnit5でJaCoCoを使う

Gradle&JUnit5の組み合わせでJaCoCoを使用した場合、デフォルトだとテスト実行時のカバレッジを取得することができない。*1
なので、この組み合わせでJaCoCoでカバレッジをとりたい場合は、JaCoCoプラグインの設定を変更する必要がある。

JaCoCoプラグインへの設定

  • JUnit5のテストを実行するjunitPlatformTestタスクをカバレッジ対象にする。
  • レポートを出力するタスクを追加して、junitPlatformTestの結果からレポートを出力できるようにする。
jacoco {
  applyTo junitPlatformTest
}

task junitPlatformJacocoReport(type: JacocoReport) {
  sourceSets sourceSets.main
  executionData junitPlatformTest
}

これで、gradle junitPlatformTest junitPlatformJacocoReportカバレッジ取得とhtmlレポートが生成できるようになると。

*1:GradleのJaCoCoプラグインのデフォルト動作だとjunitPlatformTestタスクはカバレッジ対象にならない。