STS(Eclipse)のGradleプロジェクトでjacoco設定する方法

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が表示されるようになります。

STS(Eclipse)のGradleプロジェクトでjacoco設定する方法

次に以下を記述します。

jacocoTestReport {
  reports {
    xml.enabled false
    csv.enabled false
    html.enabled = true
  }
}

これで、customJacocoReportDir\test\html配下にhtml形式のレポートが出力されているはずです。

STS(Eclipse)のGradleプロジェクトでjacoco設定する方法

Chapter 34. The JaCoCo Plugin

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配下のみレポート出力
            )
        })
    }
}

文字化け

レポートの日本語部分が文字化けする場合があります。

gradleプロジェクト直下に「gradle.properties」ファイルを新規作成します。これはデフォルトでは作成されません。

このファイルに以下記述します。

org.gradle.jvmargs=-Dfile.encoding=UTF-8

これで文字化けがなくなりました。

レポート出力されない

build\customJacocoReportDir配下に作成されるレポートが作成されない場合は一旦customJacocoReportDirディレクトリを削除して、:jacocoTestReportタスクを実行します。

コメント

タイトルとURLをコピーしました