2017-08-22 3 views
2

J'ai lu toutes les discussions sur le fait que SonarLint n'est pas synchronisé avec SonarQube, mais il ne clique pas.Synchronisation SonarLint avec SonarQube

J'ai créé un projet Maven simple pour tester SonarLint & SonarQube. J'ai ajouté le sonar-maven-plugin au projet, puis j'ai lancé mvn sonar: sonar.

Le projet a été transféré à sonarqube. Quand j'ai regardé dans SonarQube, je vois qu'il montre le calmar: S2699 (le test de junit n'a pas d'assertion) comme un bloqueur.

Cependant, dans eclipse, ce problème n'est pas signalé par SonarLint.

J'ai volontairement choisi celui-ci car il ne s'agit pas d'un problème PMD/FindBugs/Checkstyle.

J'ai vérifié que squid: S2699 est actif sur le serveur. C'est évident, parce que SonarQube l'a montré.

Il y a seulement 1 Profil de la qualité: SonarWay.

Edit: Je suis en mode connecté.

Quelqu'un a-t-il une idée de pourquoi?

J'utilise:

  • Eclipse Neon.3 de presse (4.6.3)
  • sonar-maven-plugin 3.0.2
  • Maven 3.3.9 (celui intégré dans Eclipse)
  • SonarLint 3.2.0.201706271328
  • sonarqube 6.3 (build 19869)

Voici les s creenshots comme preuve.

SonarLint screenshot

SonarQube screenshot

Répondre

0

Il semble que votre fichier de test n'est pas traité comme un fichier de test, mais en tant que fichier source. Je dis cela en fonction du type d'erreurs signalées (Supprimer la variable non utilisée) et le genre d'erreurs qui sont pas rapporté (aucune assertion). Comme vous le savez, différentes règles sont appliquées aux sources et aux tests.

SonarLint décide si un fichier est un fichier de test ou non sur la base des expressions régulières de fichiers de test de préférence, que vous pouvez trouver dans Fenêtre/Préférences/SonarLint. La valeur par défaut est **/*Test.*,**/test/**/*, cela semble bien fonctionner dans un large éventail de cas, et en regardant votre capture d'écran, cela devrait fonctionner pour le vôtre aussi. Donc tout d'abord, vérifiez ce paramètre. Si la valeur est différente de la valeur par défaut, , je suggère de revenir à la valeur par défaut comme un contrôle de santé mentale. Ensuite, vous pouvez modifier la valeur en fonction de vos besoins.

Il est également bon de vérifier que ma théorie est correcte au sujet SonarLint traiter le fichier comme test au lieu de la source, en inspectant la SonarLint Console:

  • Dans la vue Console , cliquez sur le Ouvrir la console menu déroulant, sélectionnez SonarLint Console
  • Dans les Configurer les journaux menu déroulant permet Verbe OSE Sortie
  • Trigger une analyse du fichier de test (faire un changement et enregistrer le fichier)

Vous devriez voir la sortie comme ceci:

[ 
    baseDir: ... 
    workDir: ... 
    extraProperties: ... 
    inputFiles: [ 
    /path/to/your/test/SonarProofTest.java [test] 
    ] 
] 

Le [test] à la fin du nom de fichier indique que le fichier est traité comme un fichier de test. Si ce n'est pas le cas, le fichier est traité comme un fichier source.

+0

Oui. C'était ça. Malheureusement, ce fut probablement un mauvais choix d'un exemple, car le problème reste sur certaines classes de non-test. Je ne vais pas continuer cette question, cependant. J'apprécie l'aide! – Kev