Vor dem Upgrade-Setup:
- Java – 1.8
- Scala – 2.12
- sbt – 1.5.0
- sbt-jacoco – 3.1.0
Nach dem Upgrade:
- Java – 17
- Scala – 2.13
- sbt - 1.10.11
- sbt-jacoco - 3.4.0
Mit Upgrade von sbt-jacoco hat unsere Gesamttestabdeckung um ~10 % verringert.
Nach einigen Untersuchungen haben wir herausgefunden, dass sbt-jacoco 3.4.0 jetzt Zweige synthetischer Methoden zählt (z. B. copy$-Methoden für Fallklassen).
Ich habe den Quellcode von sbt-jacoco überprüft und konnte sehen, dass ein geeigneter Filter (synthetische Scala-Methoden) implementiert ist, aber es sieht so aus, als ob er nicht funktioniert, oder vielleicht sollte ich ihn irgendwie währenddessen aktivieren Jacoco-Befehl wird gestartet.
Außerdem werden ab sbt-jacoco 3.4.0 auch einfache Getter gezählt, aber laut Jacoco sollte das nicht der Fall sein.
UPD
@aled, @Gaël J, Sie haben Recht, ich sollte ein Beispiel hinzufügen. Und die Frage lautet: „Wie schließt man synthetische Methoden aus dem SBT Jacoco-Bericht aus?“
Hier ist vor dem Upgrade (sollte mit Java 1.8 gestartet werden): https://github.com/ppllaxxa/sbt-jacoco-test
Nach dem Upgrade (sollte mit Java 17 gestartet werden): https://github.com/ppllaxxa/sbt-jacoco-test-upgrade
Um einen Jacoco-Bericht zu generieren, führen Sie ihn einfach in der SBT-Shell aus: „Clean CoverageOn“ jacoco CoverageReport CoverageOff
Der Bericht befindet sich hier:
sbt-jacoco-test\target\scala-2.12\jacoco\report\html
Vor dem Upgrade
sbt-jacoco-test-upgrade\target\scala-2.13\jacoco\report\html
Nach dem Upgrade
Mobile version