Bibliothek zur Messung der Java-Abdeckung
Ich habe den aktuellen Status von Open Source-Bibliotheken untersucht, mit denen die Abdeckung von Java-Tests gemessen werden kann.
einpacken
Cobertura hat die Entwicklung gestoppt, daher von nun an JaCoCo oder Clover wird wahrscheinlich zum Mainstream. Da Clover kürzlich als Open Source veröffentlicht wurde, ist die zukünftige kontinuierliche Entwicklung (= Community-Aktivität) nicht sehr sichtbar.
Übersicht der drei Hauptbibliotheken
JaCoCo
- Die neueste Version ist die Version 0.8.0, die im Januar 2018 (Stand März 2018) veröffentlicht wurde.
- Für Klassen, die zur Laufzeit nicht gemessen werden können (On-the-Fly-Instrumentierung), kann die Messverarbeitung vorab (Offline-Instrumentierung) zur Klassendatei hinzugefügt werden.
Cobertura
- Die Entwicklung wurde im Februar 2015 eingestellt.
- Wenn Java 8 nicht unterstützt wird und eine Notation wie der Lambda-Ausdruck vorhanden ist, kann dieser Teil nicht gemessen werden.
- Unterstützt die Aggregation von Messberichten für Projekte, die aus mehreren Modulen bestehen, die von anderen Bibliotheken nicht unterstützt werden.
Clover
- Ursprünglich war es kommerzielle Software, aber sie wurde im April 2017 als Open Source veröffentlicht.
- Im Gegensatz zu anderen Bibliotheken wird die Abdeckung gemessen, indem dem Quellcode anstelle der Klassendatei Messcode hinzugefügt wird.
- Unterstützt 20+ Metriken sowie die zyklomatische Komplexität.
Andere Bibliotheken usw.
EclEmma
--Eclipse-Plug-In zum Messen der Abdeckung mit JaCoCo auf Eclipse.
- In der Vergangenheit wurde EMMA für die Abdeckungsmessungsbibliothek verwendet. Da die Entwicklung von EMMA jedoch 2005 eingestellt wurde, haben wir unsere eigene Abdeckungsmessungsbibliothek JaCoCo entwickelt. Hierher gezogen.
JMockit
- Obwohl es sich um ein Testwerkzeug zum Testen handelt, unterstützt es auch Measure Coverage.
Referenz
- https://confluence.atlassian.com/clover/comparison-of-code-coverage-tools-681706101.html
- https://tesshu.com/java/comparison-between-jacoco-and-cobertura