2016-10-26 31 views
2

私はjacocoプラグインとsonarqubeのGradleプラグインに統合しようとしているテスト 'org.sonarsource.scanner.gradle:sonarqube-のGradle-プラグインを:2.1'sonarqubeのGradleプラグインは

プラグインを適用 'org.sonarqube': 'jacoco'

は私のビルド/ jacocoフォルダが含まれています integrationTest.exec test.execしかし

、目を

は、プラグインを適用しますe sonarqubeプラグインは「test.exec」ファイルのみを認識します:

18:20:45.130 INFO - JaCoCoItSensor:JaCoCo ITレポートが見つかりませんでした:C:\ Users \ abc3 \ Downloads \ sme-letter \ target \ jacoco-it .exec : 18:05:55.609 INFO - 分析C:\ Users \ユーザーABC3 \ダウンロード\ SME文字の\ビルド\ jacoco \ test.exec私は「認識するsonarqubeプラグインを取得するにはどうすればよい

integrationTest.exec 「

おかげ

マーク

+0

は、「ビルド/ jacoco/integrationTest.exec」何か標準で得ることができる最高のですか?私はGradleの統合テストのサポートを組み込んだことに気づいていませんでした。 SonarQubeユーザーグループでサンプルプロジェクトを共有してもよろしいですか?これが何か標準であれば、SonarQube Scanner for Gradleを改良して、すぐにサポートすることができます。 –

答えて

1

これはGradle plugunで動作するかどうかはわかりませんが、試してみてください。

ソナーには、統合テストJaCoCoレポートの名前を指定するプロパティがあります。このプロパティはsonar.jacoco.itReportPath(ユニットテストレポートの場合はsonar.jacoco.reportPath)と呼ばれます。

私が知る限り、gradleソナープラグインでカスタムプロパティを追加することができます。あなたが変更できるように、次のようにITは、プロパティを経由して名前を報告:

それは私の作品
sonarqube { 
    properties { 
     property "sonar.jacoco.itReportPath", "build/jacoco/ integrationTest.exec" 
    } 
} 
+1

私はSonarQube Scanner for Gradleが「単体テスト」カバレッジレポートのみを考慮していることを確認します。 –

+0

それで、「報告する」カバレッジレポートを追加する方法はあります。それはMavenと一緒に働いていました。 – cocorossello

0

、一つだけのファイルAND(重要)を削除他のすべてのレポートにすべてのjacocoレポートをマージした後

 property "sonar.java.coveragePlugin", "jacoco" 
     property "sonar.junit.reportsPath", "$projectDir/build/test-results" 
     property 'sonar.jacoco.reportPaths', "${rootProject.buildDir}/jacoco/mergeJacoco.exec" 

そして、あなたは、これらの "部分" ファイルを使用するようにマージjacocoタスクに

Task mergeJacoco = tasks.create('mergeJacoco', JacocoMerge, { 
    doFirst { 
     delete "$buildDir/jacoco/mergeJacoco.exec" 
    } 
    destinationFile(new File(buildDir, 'jacoco/mergeJacoco.exec')) 
    executionData fileTree('./').include('**/*.exec-partial') 
    doLast { 
     delete fileTree('./').include('**/test.exec-partial') 
    } 
}) 

mergeJacoco.outputs.upToDateWhen { false } 
project.tasks["sonarqube"].dependsOn mergeJacoco 
mergeJacoco.mustRunAfter ":myProject:test" 

とセットアップjacocoが必要

subprojects { 
    .... 
    jacoco { 
     destinationFile file("$buildDir/jacoco/test.exec-partial") 
     append = false 
     includes = ['com.mypackage.*'] 
    } 
} 

あなたは単位を取得しますし、ITは1で混合報告し、それは私が

関連する問題