2014-02-16 10 views
6

Ich analysiere ein Java-Projekt, das Unit-getestet wurde und Cobertura coverage.xml gemeldet. Ich benutze SonarQube 4.1.1 und den neuesten Sonar Runner. Ich habe Cobertura Coverage Ergebnisse erfolgreich zu Sonar 3.2 und Ant Analyzer importiert, aber mit dieser neuen Version stolpere ich um Probleme. In der neuen Ausführung der Sonar-Analyse (durch Jenkins) sehe ich keinen Hinweis in den Logs, dass es irgendeine Cobertura-Engine oder irgendetwas anderes gestartet hätte. Meine Einstellungen in Runner Jenkins Projekt:SonarQube nimmt nicht an Cobertura code coverage

sonar.dynamicAnalysis=reuseReports 
sonar.java.coveragePlugin=cobertura 
sonar.cobertura.reportPath=[mypath]/coverage.xml 
sonar.junit.reportsPath=[mypath]/ 

Keine Erwähnung von Cobertura in der Analyse-Ausgang (mit Ausnahme meiner eigenen Eigenschaftswerte) und Sonarqube Seite zeigt „-“ in der Berichterstattung Bericht. Die Testergebnisse der Einheit sind gut dargestellt.

Ich habe auch alle Quellen-, bin- und Testverzeichnisse hinzugefügt. Irgendwelche Ideen? Vielen Dank.

aktualisieren Ich frage mich, ob der Grund, warum Cobertura Berichterstattung nicht auf Sonarqube Seite gemeldet wird, da ist in Jenkins mein Sonarqube Projekt Klone (Klon-Plugin) der Arbeitsbereich aus einem früheren Projekt bauen? Wenn die Datei "coverage.xml" statische Pfade enthält, geht es möglicherweise irgendwie schief.

Antwort

4

Ok die Lösung war ziemlich offensichtlich. SonarCube 4.1.1 ist nicht mit Cobertura vorinstalliert, also habe ich es installiert und jetzt funktioniert es :) Vielleicht war es in Version 3.2 vorinstalliert, ich kann mich nicht erinnern.

+1

Wie Sie es installiert haben ... und welche Schritte Sie befolgt haben, um eine Echolotabdeckung zu erhalten. –

+1

Die Lösung mag offensichtlich klingen, aber die Symptome machen es definitiv nicht offensichtlich ... Es sollte eine Art Warnung oder Fehlermeldung in den Protokollen geben. @amit_kumar als Administrator bei SQ, gehe zum Update Center und suche nach dem Cobertura-Plugin. (das gilt für den Server, nicht für den Client) – Phil

0

Für jede Funktion zur "Wiederverwendung von Berichten" in SonarQube (möglicherweise für Code Coverage, Testausführung oder ein anderes Tool von Drittanbietern, das einen Zwischenbericht generiert) muss der Bericht basierend auf den gleichen Quelldateien generiert werden Bedingungen des Dateisystems) als die für die SonarQube-Analyse verwendeten Andernfalls können die SonarQube-Plugins keine Pfade aus den Berichten mit den Pfaden der analysierten Quellen zuordnen.

So haben Sie es richtig geraten: Das Klonen des Arbeitsbereichs und Ausführen der SonarQube-Analyse auf diesem Klon ist der Grund, warum die Abdeckung nicht berechnet werden kann.

+0

Hmm Ich denke, es funktioniert immer noch nicht. Ich baute, testete und lief Code-Coverage auf dem Build. Dann habe ich die SonarQube-Analyse ausgeführt, aber die Abdeckung wurde noch nicht erfasst. Das Stichwort "Cobertura" kommt im Sonar-Runner-Output nicht vor, was mich denken lässt, dass etwas anderes nicht stimmt. – user1340582