web-dev-qa-db-ja.com

jacocoReportの実行

私はgradle 1.7とjacocoプラグインを使用しています。私のプロジェクトはJavaおよびscalaプラグインを使用しています

Gradlew -i clean jacocoTestReportを実行すると

レポートは作成されず、ログに表示されます

:bl:jacocoTestReport (Thread[Daemon Thread 13,5,main] - start
:bl:jacocoTestReport
Skipping task ':bl:jacocoTestReport' as task onlyIf is false.
:bl:jacocoTestReport SKIPPED
:bl:jacocoTestReport (Thread[Daemon Thread 13,5,main]) - complete

どういう意味ですか?レポートが作成されないのはなぜですか?

31
Pavel Bernshtam

タスクは、カバレッジデータが利用可能な場合にのみ実行されます。 testタスクを実行することでも確認できます。

30

Build.gradleにトップレベルで以下を追加します。

test {
 finalizedBy jacocoTestReport
}

これは、テストタスクの最後にjacocoTestReportタスクを実行する必要があることを意味します。テストの実行後、カバレッジ分析を受け取ります。

上記のどれも私にとってはうまくいきませんでした。私のために働いたのは次のことでした

Build.gradleの一番上に追加します。

apply plugin: 'jacoco' // code coverage reports

次を「タスク」として追加します。

// Generate code coverage reports ... run with jacoco
jacocoTestReport{
    additionalSourceDirs = files(sourceSets.main.allJava.srcDirs)
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "${buildDir}/reports/jacoco/html"
    }
    executionData = files('build/jacoco/test.exec')
}

Gradleテストタスクに次を追加します。

finalizedBy jacocoTestReport

次に、次のコマンドを発行しました。

gradle run test jacoco
11
StylusEater