STS(Eclipse)のGradleプロジェクトでjacoco設定する方法
eclemmaでカバレッジしていたのですが、最近jacocoが流行っているみたいなのでbuild.gradleで設定する方法を纏めます。
jacoco自体は「EclEmma」チームが作成しているコードカバレッジツールです。
gradle標準プラグインでjacocoは用意されているのでapplyします。
plugins { id 'org.springframework.boot' version '2.3.0.M2' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java' id 'jacoco' }
dependenciesに依存関係追加します。
testImplementation 'org.jacoco:org.jacoco.agent:0.8.5'
これでGradleタスクのbuildを実行します。
build配下に以下ファイルが作成されます。
生成 | 用途 |
---|---|
jacoco\test.exec | Jenkinsで使用 |
html形式のレポート出力
build時にhtml形式のレポートを出力できるように設定します。
まずbuild.gradleに以下を記述します。
jacoco { toolVersion = "0.7.1.201405082137" reportsDir = file("$buildDir/customJacocoReportDir") }
これで、GradleタスクにjacocoTestReportが表示されるようになります。
次に以下を記述します。
jacocoTestReport { reports { xml.enabled false csv.enabled false html.enabled = true } }
これで、customJacocoReportDir\test\html配下にhtml形式のレポートが出力されているはずです。
Eclipse4.4にカバレッジツールEclEmmaプラグインを追加する
Java11+JUnit5+jacoco出力する
jacocoの0.8.5ではJava13までサポートしていますのでJava11+JUnit5でjacoco出力が可能です。
build.gradleを以下のように記述します。
test { useJUnitPlatform{ includeEngines 'junit-jupiter' } } jacoco { toolVersion = '0.8.5' reportsDir = file("$buildDir/customJacocoReportDir") } jacocoTestReport { reports { xml.enabled false csv.enabled false html.enabled true } }
カバレッジレポート対象を絞る
build.gradleで以下のように記載することによってレポート対象を絞ることができます。
jacocoTestReport { reports { html { enabled true } xml { enabled true } } afterEvaluate { classDirectories.from = files(classDirectories.files.collect { fileTree(dir: it, exclude: [ ], include: [ '**/controller/**', '**/service/**' ] // controllerとservice配下のみレポート出力 ) }) } }
lombok.Generatedを使用してレポート対象外にすることもできます。
文字化け
レポートの日本語部分が文字化けする場合があります。
gradleプロジェクト直下に「gradle.properties」ファイルを新規作成します。これはデフォルトでは作成されません。
このファイルに以下記述します。
org.gradle.jvmargs=-Dfile.encoding=UTF-8
これで文字化けがなくなりました。
レポート出力されない
build\customJacocoReportDir配下に作成されるレポートが作成されない場合は一旦customJacocoReportDirディレクトリを削除して、:jacocoTestReportタスクを実行します。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント