2017-01-21 1 views
1

Récemment, j'ai installé SonarQube à la version 6.2. J'ai remarqué que les indicateurs de couverture de code ont considérablement diminué. Dans les détails de la couverture, je peux voir que les fichiers avec @codeCoverageIgnore annotation ou interfaces ont des lignes non couvertes. On dirait que Sonar a calculé la couverture par le nombre de lignes couvertes (à partir du journal de sortie xml de PHPUnit) par tous les fichiers dans le répertoire pointé par sonar.sources dans sonar-project.properties. Avant d'installer SonarQube sur mon serveur, j'ai joué avec la version 6.1 fonctionnant sur l'image officielle de Docker et ça a fonctionné comme un charme.Couverture incorrecte avec Sonarqube 6.2 et le plugin PHP

Je n'ai trouvé aucun problème/problème/question similaire lié à un tel problème, alors peut-être que je fais quelque chose de mal.

Détails:

  • PHPUnit 5.7.5 est en cours d'exécution avec la commande:

phpunit --coverage-clover=build/phpunit.coverage.xml --log-junit=build/phpunit.log.xml

  • sonarqube 6.2 (installé à partir des dépôts apt officiels)
  • sonarqube Scanner 2.8
  • Donc PHP Plugin de narQube 2.9.2.1744

Répondre

1

Vos numéros de couverture a chuté avec sonarqube 6.2 et 2.9.2 SonarPHP parce que la combinaison de versions (ci-dessus) et les flux de données « lignes exécutables » afin que la couverture peut être « forcée à zéro » sur les fichiers qui ne sont pas inclus dans les rapports de couverture.

I.E. SonarQube 6.2 est conçu pour vous donner une idée plus précise de votre véritable taux de couverture. Avant cela, il devait s'appuyer sur la liste des fichiers et des lignes alimentés par le moteur de couverture et de nombreux moteurs de couverture ignorent simplement (c'est-à-dire n'incluent pas dans leurs rapports) les fichiers où aucune ligne n'est testée. Maintenant, l'analyseur de code, SonarPHP dans ce cas, alimente une liste de lignes exécutables pour tous ces fichiers ignorés par votre moteur de couverture, de sorte que vous avez un plus grand ratio de lignes découvertes, et donc une baisse du pourcentage de couverture.

Si vous voulez que vos numéros de couverture pour revenir à ce qu'ils étaient, vous avez deux choix:

  1. écrire plus de tests! ;-P
  2. ajouter exclusions pour les fichiers non couvertes
+0

Merci pour votre réponse :) L'idée du vrai rapport de couverture est assez bonne, mais il est un peu bizarre quand un fichier avec l'interface ne couvre pas du tout et il n'y a façon de résoudre ce problème (uniquement par des exclusions). Je reçois de fausses alertes que le nouveau code a découvert des lignes et parfois il est difficile de trouver le fichier qui devrait être réparé au lieu d'être ignoré. J'ai peur que mon équipe commence à abandonner les problèmes rapportés parce qu'ils pensent que Sonar a probablement tort, donc ça ne vaut pas la peine de le regarder. –

+0

Veuillez signaler ces fichiers au groupe [SonarQube Google] (https://groups.google.com/forum/?pli=1#!forum/sonarqube) –