eclemma
Meistens benutze ich für die Messung der Code-Coverage von Tests 
EclEMMA, da dieses als Eclipse-Plugin die Code-Coverage direkt in Eclipse anzeigt.
Zwei Probleme habe ich allerdings mit EclEMMA festgestellt:
	- In Testmethoden, die eine Exception werfen sollen, kann EclEMMA die Testcoverage nicht korrekt feststellen (siehe dort in der FAQ).
- In multi-Threaded Tests terminierte Thread.sleep() in einigen Fällen nie (hing sich auf).
Wenn man JUnit Tests, die dies betrifft, unter eclemma auslassen will, sie aber beim normalen Unit-Testlauf mit ausführen kann, hilft folgende Zeile in der Testmethode:
if ( System.getProperty("java.class.path").contains(".eclemma.") ) 
    return;
djunit
djunut, ein weiteres Eclipse-Plugin für Code-Coverage kommt leider auch mit Threads oft nicht klar:
Exception in thread "Thread-1" java.util.ConcurrentModificationException
Leider habe ich keine Lösung für das Problem. Ohne Threads funktioniert aber djunit auch zufriedenstellend.
cobertura
Ein sehr schönes weiteres Code-Coverage Werkzeug ist allerdings mit 
Cobertura verfügbar, welches es auch als Maven 2 Plugin gibt, leider nicht als Eclipse-Plugin.
Hier der nötige Ausschnitt aus der pom.xml:
<project>
 ...
 <dependencies>
 ...
 <dependency>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>cobertura-maven-plugin</artifactId>
  <version>2.2</version>
  <scope>test</scope>
 </dependency>
 ...
 </dependencies>
 ...
 <reporting>
 ...
 <plugins>
  <plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>cobertura-maven-plugin</artifactId>
   <configuration>
   <formats>
    <format>html</format>
    <format>xml</format>
   </formats>
   </configuration>
  </plugin>
 </plugins>
 ...
 </reporting>
</project>
Aufgerufen wird Cobertura dann so:
mvn cobertura:cobertura
Dabei führt es dann die Tests unter Cobertura aus und generiert einen Bericht in HTML und XML nach target/target/site/cobertura/, der unter target/site/cobertura/index.html mit einem Browser betrachtet werden kann.
    
 
    
Twitter
Facebook
Reddit
LinkedIn
StumbleUpon
Email