web-dev-qa-db-fra.com

Sonarqube n'affiche pas la couverture du code après l'exécution

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 Sonarqube analysis

Lorsque je l'exécute avec les outils d'IntelliJ, j'obtiens les résultats suivants. (pas zéro!) IntelliJ analysis

C'est à ce moment que je vérifie les résultats de Jacoco directement. Dans $base_direc/target/jacoco/index.html
Jacoco results

Le même code lorsqu'il est exécuté avec sonar-scanner sonar-scanner


Ceci est ma configuration maven
maven configuration

Ma ~/.m2/settings.xml
settings-pic1
settings-pic2


Edit 1: J'ai trouvé cela dans les journaux. Db not supported


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?!

11
Tarun Maganti

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


Réf: Couverture du code sonar

9
Tarun Maganti

J'ai résolu ce problème en utilisant les étapes suivantes:

Pour commencer, j'ai ajouté la configuration dans notre pom.xml.

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

2. Dans le fichier de propriétés sonarqube, la partie ci-dessous a été ajoutée.

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

0
SANITH