Ich habe alle diese Tools, die die gleiche Abdeckung mit JaCoCo melden: 69% Leitungsabdeckung und 23% Zweigabdeckung.Sonar meldet unterschiedliche Zeilen- und Zweigabdeckung als Idea, Eclipse, Maven und Jenkins
Hinweis: Screenshots hatte über mehrere Tage genommen worden, so dass sie leicht unterschiedliche Werte haben, aber die Varianz ist < 1%
jedoch berichtet Sonar unterschiedliche Werte:
Maven Projekt ist wie folgt aufgebaut:
- main (Aggregator)
- Java-Modul
- js (node) -Modul
Sie können die gleiche Berichterstattung über Main und Java-Module gemeldet, und keine Abdeckung für die Js.
Ich verwende die neuesten Versionen von jacoco
, jacoco-maven-plugin
und Sonar Java Plugin
.
Hier sind die relevanten Buildprotokoll Fragmente von mvn sonar:sonar
- alle scheinen in Ordnung zu sein:
$ egrep -i 'jacoco|\[warn]' consoleText
[WARN] [04:34:29.569] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[WARN] [04:34:29.576] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[WARN] [04:34:29.593] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[INFO] [04:34:32.704] JaCoCoItSensor: JaCoCo IT report not found: /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/jacoco-it.exec
[WARN] [04:34:32.952] Bytecode of dependencies was not provided for analysis of test files, you might end up with less precise results. Bytecode can be provided using sonar.java.test.libraries property
[WARN] [04:34:50.101] Cobertura report not found at /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/site/cobertura/coverage.xml
[INFO] [04:35:03.391] Sensor JaCoCoSensor
[INFO] [04:35:03.406] Analysing /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/jacoco.exec
[INFO] [04:35:03.712] Sensor JaCoCoSensor (done) | time=321ms
[INFO] [04:35:03.712] Sensor JaCoCoOverallSensor
[INFO] [04:35:03.714] Analysing /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/jacoco.exec
[INFO] [04:35:03.762] Analysing /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/sonar/jacoco-overall.exec
[INFO] [04:35:03.906] Sensor JaCoCoOverallSensor (done) | time=194ms
[INFO] [04:35:11.013] JaCoCoSensor: JaCoCo report not found : /home/acme/workspace/example-Sonar-DSL/modules/frontend/target/jacoco.exec
[INFO] [04:35:11.013] JaCoCoItSensor: JaCoCo IT report not found: /home/acme/workspace/example-Sonar-DSL/modules/frontend/target/jacoco-it.exec
[INFO] [04:35:11.179] JaCoCoSensor: JaCoCo report not found : /home/acme/workspace/example-Sonar-DSL/target/jacoco.exec
[INFO] [04:35:11.179] JaCoCoItSensor: JaCoCo IT report not found: /home/acme/workspace/example-Sonar-DSL/target/jacoco-it.exec
Ist das ein Fehler in Java Plugin Sonar? Ich denke, es ist sehr unwahrscheinlich, dass die von Sonar gemeldete Metrik korrekt ist, wenn drei andere Tools, die von verschiedenen Benutzern konfiguriert wurden, durchgehend unterschiedliche Werte anzeigen.
Betrifft dies ein Multimodulprojekt? Wenn ja, haben Sie Tests in einigen Modulen, die Code in anderen Modulen abdecken? – benzonico
Ich zweite Benzonico ... Ich bin auf Projekte gestoßen, die Testfall für alle Module in 1 Modul hat. In diesem Fall die meisten Tests löst Fehler und Abdeckung wird berichtet für 1 Modul, das Testfälle in ihm hat – Shiva
Nein, es ist ein Multi-Modul-Projekt, aber es hat nur ein Java-Modul und ein anderes für Fronted, so dass alle JUnit-Tests sind im selben Modul wie der zu testende Code. –