Je lance sonarqube avec maven.
Je l'ai installé en utilisant way . En utilisant brew
, j'ai installé mysql
et sonar
.
Lorsque je lance, j'obtiens 7 bogues critiques mais la couverture de code pour 88 tests est nulle
Lorsque je l'exécute avec les outils d'IntelliJ, j'obtiens les résultats suivants. (pas zéro!)
C'est à ce moment que je vérifie les résultats de Jacoco directement. Dans $base_direc/target/jacoco/index.html
Le même code lorsqu'il est exécuté avec sonar-scanner
Ceci est ma configuration maven
Edit 1: J'ai trouvé cela dans les journaux.
Edit2: j'ai édité ~/.m2/settings.xml
ajoutée
<properties>
<sonar.Host.url>http://localhost:9000/</sonar.Host.url>
</properties>
Modifié /usr/local/Cellar/sonarqube/6.3.1/libexec/conf/sonar.properties
ajoutée sonar.Host.url=http://localhost:9000/
Modifié /usr/local/etc/sonar-scanner.properties
ajoutée - sonar.Host.url=http://localhost:9000/
J'ai exécuté l'application de toutes les manières ci-dessus et les résultats étaient les mêmes, c'est-à-dire que je pouvais voir les résultats de Jacoco mais pas dans le sonar.
Est-il possible que si des bogues sont détectés, le sonar refuse de couvrir le code?!
J'ai trouvé la solution -
Le plugin maven que j'ai inclus a la configuration du fichier destfile et du fichier de données de Jacoco comme ${basedir}/target/coverage-reports/jacoco-unit.exec
mais par défaut, le sondeur lit ${basedir}/target/jacoco.exec
. J'ai changé la valeur par défaut à http: // localhost: 9000/settings? Category = Java
J'ai résolu ce problème en utilisant les étapes suivantes:
<properties>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
<sonar.language>Java</sonar.language>
</properties>
sonar.projectName=${JOB_NAME}
sonar.projectVersion=1.0.0
sonar.sources=src/main
sonar.sourceEncoding=UTF-8
sonar.language=Java
sonar.tests=src/test
sonar.junit.reportsPath=target/surefire-reports
sonar.surefire.reportsPath=target/surefire-reports
sonar.jacoco.reportPath=target/jacoco.exec
sonar.binaries=target/classes
sonar.Java.coveragePlugin=jacoco
sonar.verbose=true