2008-05-05

Java Code-Coverage -Tools

Ich bin gerade mittels eines guten Vergleiches von Java-Code-Coverage -Werkzeugen in einem Blog auf 2 interessante Tools als Alternative zu Clover gestoßen:


  • Emma und

  • ECLemma - dessen Eclipse-Plugin

  • maven-jcoverage-plugin für Maven-Builds



Gute, einfache Werkzeuge für das tägliche Unit-Testen mit Prüfung der Code-Coverage.

Im Vergleich wird auch etwas Ant-"Code" gezeigt um Emma in sein Build einzubauen:

von: Ricky Clarkson
A necessary taskdef:

<taskdef resource="’emma_ant.properties’" classpathref="’build.classpath’/">


We modified our test target. This part goes at the top to decorate the bytecode:

<property name="”coverage.dir”" value="”${basedir}/coverage”/">
<mkdir dir="”${coverage.dir}”/">
<emma enabled="”${emma.enabled}”">
<instr instrpathref="”classes.path”" destdir="”${out.instr.dir}”" metadatafile="”${coverage.dir}/metadata.emma”" merge="”true”">
<filter excludes=”Test,Mock”/>
</filter>
</instr>
</emma></mkdir></property>

We added these within the junit call:

<jvmarg value="”-Demma.coverage.out.file=">


We added this at the end of the test target for cleanup:

<emma enabled="”${emma.enabled}”">
<report sourcepath="”${basedir}/src”">
<fileset dir="”${coverage.dir}”">
<include name="”*.emma”/">
</include>
<txt outfile="”${coverage.dir}/coverage.txt”/">

</txt>
</fileset>
<delete dir="”${out.instr.dir}”/"></delete></report></emma>


And here’s another target that is used to turn emma on for testing:

<target name="”emma”" description="”turns">
<property name="”emma.enabled”" value="”true”/">
<property name="”out.instr.dir”" value="”${basedir}/outinstr”/">
<mkdir dir="”${out.instr.dir}”/">
</mkdir></property></property></target>

Keine Kommentare: