Sto generando correttamente 2 file .exec di Jacoco nella cartella "build/jacoco" dopo aver eseguito una build basata su Gradle e test di integrazione.SonarQube - integrationTest.exec - sonarRunner (Gradle) o comando "sonar-runner" - mostra 0.0% di copertura
comando Gradle: "Gradle pulito accumulo integrationTest"
Una volta fatto, genera i seguenti file nella cartella .exec build/jacoco.
- test.exec
- integrationTest.exec
seguito è il mio file sonar-project.properties. Quando eseguo "sonar-runner" da Linux, il prompt lo completa ma sul dashboard di SonarQube per questo progetto, vedo che il test dell'unità dice il 34,5%, ma i test di integrazione dicono lo 0,0%. Entrambi i file .exec hanno dimensioni valide. Ho anche fatto "cat" sui file .exec e ho trasmesso l'output al comando "strings" in Linux e ho visto che integrationTest.exec ha colpito le funzioni Test - Ho solo 1 file .java.
Quando eseguo "Gradle generazione pulita integrationTest sonarRunner -Dxxx.xxx = yyy -Dyyy.xx = zzz", cioè facendo passare tutte le variabili del sonar come accennato nel file sonar-project.properties utilizzando -D opzione, funziona ma lo stesso risultato sul dashboard del progetto SonarQube. La dashboard del sonar di Project ha entrambi i widget configurati per Test di unità/integrazione e sto includendo i test IT per mostrare la copertura generale. La copertura totale mostra il 34,5% (che è il valore% del test unitario). Sonar vede test.exec, integrationTest.exec e genera automaticamente anche il file overall-xxx.exec durante questa operazione.
NOTA: Non sono dove - durante l'avvio di Tomcat su una console separata stucco/linux -OR entro Gradle costruire lo script, fornendo qualsiasi valore o l'impostazione JAVA agente per Jacoco. Sto ricevendo il file integrationTest.exec e il file test.exec, quindi non sono sicuro che JVM debba essere arrestato una volta che i test IT sono completi. Non penso di aver bisogno di quelli in quanto ho una dimensione di file valida per i file .exec.
mio: - Perché sonar non sta ottenendo IT copertura sul cruscotto, anche se sto impostando/passando la seguente variabile correttamente:?
sonar.jacoco.itReportPath=build/jacoco/integrationTest.exec
-bash-3.2 $ cat sonar- project.properties
# Root project information
sonar.projectKey=com:company:product:ProjectA
sonar.projectName=ProjectA
sonar.projectVersion=1.0
# optional description
sonar.projectDescription=ProjectA Service
#Tells SonarQube that the code coverage tool by unit tests is JaCoCo
sonar.java.coveragePlugin=jacoco
#Tells SonarQube to reuse existing reports for unit tests execution and coverage reports
sonar.dynamicAnalysis=reuseReports
# Some properties that will be inherited by the modules
sonar.sources=src/java,test/java,src/java-test
# Sonar Unit Test Report path
sonar.jacoco.reportPath=build/jacoco/test.exec
# Sonar Integration Test Report Path
sonar.jacoco.itReportPath=build/jacoco/integrationTest.exec
sonar.junit.reportsPath=build/UT/results
# Sonar Binaries
sonar.binaries=build/classes/main