2016-05-04 4 views
1

Das spezifische Problem, das ich zu lösen versuche, ist, dass Integrationstests nicht auf dem Server angezeigt werden.Gradle/SonarQube Dokumentationsproblem mit benutzerdefinierten Quellensets

auch der Beispielcode hier gegeben wird, falsch sein: SonarQube: Analyzing Custom Source Sets

Insbesondere dieses Codebeispiel:

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

mit diesen Ergebnissen Laufen in:

Invalid value of sonar.tests for... 

Was soll das eigentlich Sein? Basierend auf einem anderen Forum, das ich gelesen habe, soll dies eine Liste von durch Kommas getrennten Verzeichnissen sein. Also habe ich versucht:

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

... gleichen Fehler. Beachten Sie, dass ingegrationTest für unseren Build korrekt ist.

+0

Können Sie versuchen, Eigenschaften ["sonar.tests"] + = "," + sourceSets.integrationTest .allSource.srcDirs.join (",") –

+0

Versucht dies. Ich habe das gleiche Ergebnis. – user447607

+0

Eigenschaften {Eigenschaften ["Sonar.Tests"] ...} scheint wirklich seltsam. Sollte es nicht etwas wie Eigenschaften sein {property ["sonar.tests"] ...} ?? – user447607

Antwort

0

Der folgende Code funktioniert:

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" 
    } 
} 

ich diese importieren in jedes Projekt, das es braucht, mit Teilprojekten zu vermeiden. Gemäß den Gradle-Dokumenten verursacht die Verwendung von Teilprojekten und/oder allenProjekten eine Kopplung, die sich negativ auf die Parallelität auswirkt. IDK, wenn der Import besser ist, aber ich hoffe es.

+0

Versuchen Sie etwas wie: 'Eigenschaften [" sonar.tests "] + = sourceSets.integrationTest.allSource.srcDirs.findAll ({it.exists()})' –

+0

NullPointerException, wenn außerhalb des Eigenschaftenblocks getan. Ich versuche jetzt drinnen. – user447607

+0

Das funktioniert, aber ich finde es verwirrend, die Eigenschaften ["some.property"] INSIDE in einem Eigenschaftsblock zu verwenden. Es ist immer noch besser als das, was ich habe. – user447607

Verwandte Themen