Cobertura oder JaCoCo

Bisher habe ich ja die Code-Coverage in meinen Projekten mit einem ANT-Buildskript erstellt, welches auf Cobertura zurückgriff.
Das Ganze funktioniert mittlerweile auch schon ganz gut, aber heute bin ich über ein Problem mit der JDK7 gestolpert.

Irgendwie scheint nämlich der Cobertura-instrument Task eines meiner .war files beim instrumentieren so zu verändern, dass es unter einem Tomcat7 mit JDK7 nicht mehr startet.
Eine Alternative in Cobertura scheint es nicht mehr zu geben, da anscheinend nicht sicher ist, dass Cobertura noch neue Versionen liefert (anscheinend ist nicht ganz klar, wer noch wie lange Maintainer ist). Das Ganze klingt mir zwar sehr stark nach Gossip, aber Fakt ist, dass die letzte Cobertura-Version doch einige Zeit zurückliegt (die ist im März 2010 veröffentlicht worden, was doch nun schon 3 Jahre zurückliegt).
Da das JDK7 ja erst Mitte 2011 veröffentlicht wurde, braucht es also niemanden wundern, wenn es da kleinere Probleme gibt.

Auch wenn ein Ähnliches Setup (Cobertura mit JDK7) bei einem meiner anderen Projekte problemlos funktioniert, so scheint es Konstellationen zu geben, die Probleme bereiten.
Es bleibt mir als nur der Umstieg auf eine Cobertura-Alternative. Die ist aber schnell gefunden: JaCoCo

Die JavaCodeCoverage stammt aus der ehemaligen EclEmma-Schmiede (Emma ist ebenfalls ein bekanntes Java-Code-Coverage-Tool, welches ich noch vor Cobertura verwendet habe. EclEmma ist das Team, welches das dazu passende Eclipse-Plugin programmiert hat). Der große Vorteil von JaCoCo ist, dass man den Code nicht instrumentieren muss, sondern direkt auf den kompilierten Java-Dateien testen kann.

Jetzt bleibt noch die Frage, wie gut JaCoCo in einer Tomcat-Umgebung zurecht kommt, aber da scheine ich – laut Google – nicht der erste zu sein, der das versucht ;-)

Schreibe einen Kommentar