2016-05-04 14 views
1

私が解決しようとしている特定の問題は、統合テストがサーバーに表示されないということです。 カスタムソースセットのGradle/SonarQubeドキュメントの問題

はまた、ここで与えられたコード例は間違っていると表示されます。 SonarQube: Analyzing Custom Source Sets

具体的に、このコード例:

sonarqube { 
    properties { 
     properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs 
     properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs 
    } 
} 

にこの結果を実行している:何べきこの実際

Invalid value of sonar.tests for... 

あれ?私が読んでいた別のフォーラムに基づいて、これはコンマで区切られたディレクトリのリストであると考えられています。だから私は試しました:

sonarqube { 
    properties { 
    properties["sonar.tests"] += sourceSets.integrationTest 
               .allSource.srcDirs.join(",") 
    } 
} 

...同じエラー。私たちのビルドにはingegrationTestが正しいことに注意してください。

+0

["sonar.tests"] + = "、" + sourceSets.integrationTest .allSource.srcDirs.join( "、") –

+0

試してみることができます。私は同じ結果を得た。 – user447607

+0

プロパティ{properties ["sonar.tests"] ...}は本当に奇妙なようです。プロパティ{property ["sonar.tests"] ...}のようなものではないでしょうか? – user447607

答えて

0

次のコードは動作します:

sonarqube { 

    properties { 
     properties["sonar.tests"] += sourceSets.integrationTest.allSource.srcDirs.findAll({it.exists()}) 

     if (file("$project.buildDir/jacoco/test.exec").exists()) 
      property "sonar.jacoco.reportPath", "$project.buildDir/jacoco/test.exec" 
     if (file("$project.buildDir/jacoco/integrationTest.exec").exists()) 
      property "sonar.jacoco.itReportPath", "$project.buildDir/jacoco/integrationTest.exec" 
    } 
} 

私はサブプロジェクトを使用しないように、それを必要とするすべてのプロジェクトにこれをインポートします。 Gradleの文書によると、サブプロジェクトやallProjectsを使用すると、並列性に悪影響を与えるカップリングが発生します。 IDKなら輸入が良いですが、私はそう望みます。

+0

次のようにしてください: 'properties [" sonar.tests "] + = sourceSets.integrationTest.allSource.srcDirs.findAll({it.exists()})' –

+0

NullPointerException - プロパティブロックの外側で終了した場合。今のところ試してみる。 – user447607

+0

これは動作しますが、プロパティブロック["some.property"]を使用するのは混乱します。それはまだ私が持っているものよりも優れています。 – user447607

関連する問題