web-dev-qa-db-ja.com

JaCoCo / SonarQubeのsonar.coverage.jacoco.xmlReportPathsを構成する方法

SonarQube 7.7は、Javaプロジェクト分析について次の警告を表示します。

プロパティ 'sonar.jacoco.reportPath'は非推奨です(JaCoCoバイナリ形式)。代わりに「sonar.coverage.jacoco.xmlReportPaths」を使用する必要があります(JaCoCo XML形式)。

Gradleベースのプロジェクトは、sonar-project.propertiesを介して次のように構成されます。

sonar.projectKey=MyExampleLib
sonar.projectName=MyExample Library
sonar.sources=src/main/Java
sonar.jacoco.reportPath=build/jacoco/test.exec
sonar.junit.reportsPath=build/test-results/test
sonar.Java.test.binaries=build/classes/test
sonar.Java.binaries=build/classes/Java/main
sonar.binaries=build/classes
sonar.projectVersion=$libVersion

SonarQubeサーバーのURLは次の方法で挿入されます(そうしないと、「localhost:9000」エラーが発生します)。

Prepare SonarQube Scanner environment

SonarQube分析は、Jenkinsと JaCoCoプラグイン v.3.0.4を介して次のジョブ構成でトリガーされます。

JaCoCo configuration

report.xmlxmlReportPathsによってピックアップされると読みました。どうすれば生成できますか?

関連した

3
JJD

あなたのビルドはGradleに基づいているようです。 Gradleビルドでjacocoと sonarqube プラグインを使用する方が簡単でしょう

plugins {
    id "jacoco"
    id "org.sonarqube" version "2.8"
}

あなたは必要ありませんsonar-project.properties、分析はビルドから構成されます。 sonarqube構成のデフォルト値をカスタマイズできます

// in build.gradle
sonarqube {
    properties {
        property "sonar.exclusions", "**/*Generated.Java"
    }
}

カバレッジを有効にするには、gradleを構成してXMLレポートを生成する必要があります

jacocoTestReport {
    reports {
        xml.enabled true
    }
}

そして、gradle build jacocoTestReport sonarqube。詳細は here および SonarScanner for Gradle doc にあります

1
Tibor Blenessy

truexml.enabled値を指定し、レポートセクションでdestination pathを指定することにより、XML形式でJacocoレポートを生成できます。

plugins {
      id "org.sonarqube" version "2.8"
}
    jacocoTestReport {
        group = "Reporting"
        reports {
            xml.enabled true
            csv.enabled false
            //to create coverage report in html
            html.destination file("${buildDir}/reports/coverage")
            //for XML
            xml.destination file("${buildDir}/reports/jacoco.xml")
        }
    }

SonarQubeプロパティは、build.gradleファイルを使用して構成することもできます。 sonar.jacoco.reportPathおよびsonar.jacoco.reportPathsは、ソナーバージョン7.7から廃止されたプロパティであるため、sonar.coverage.jacoco.xmlReportPathsに置き換える必要があります。

  • build.gradleによるSonarqubeプロパティの構成
sonarqube {
    properties {
        property 'sonar.projectName', 'MyExample Library'
        property 'sonar.projectKey', 'MyExampleLib'
        property 'sonar.core.codeCoveragePlugin', 'jacoco'
        property 'sonar.coverage.jacoco.xmlReportPaths', '${project.buildDir}/reports/jacoco.xml'
    }
}

  • sonar-project.propertiesを使用してこれを行う場合は、下記の非推奨のプロパティを推奨のプロパティに更新してください。
sonar.jacoco.reportPath=build/reports/jacoco.xml

最後に、gradle jacocoTestReport sonarqubeコマンドを実行すると、${project.buildDir}/reports/jacoco.xml${project.buildDir}/jacoco/test.execなどのjacocoテストレポートファイルがSonarQube用に生成されます。

0