Java code coverage tools: Difference between revisions

Content deleted Content added
this is not about websites and tools which report and collect code coverage statistics, but tools which actualle produce them. remove jtest, sonarqube
introduce a section for notable tools which are not maintainted any more
Line 128:
{{Clear}}
 
== EMMA ==
{{Infobox software
| name = EMMA
| developer = Vlad Roubtsov
| latest release version = 2.1
| latest release date = {{Release date and age|2005|05|13}}
| genre = [[Code coverage]]
| license = Common Public License 1.0
| repo = {{URL|https://sourceforge.net/projects/emma/}}
| website = {{URL|emma.sourceforge.net}}
}}
'''EMMA''' is an [[open-source software|open-source]] toolkit for measuring and reporting [[Java (programming language)|Java]] [[code coverage]]. EMMA is distributed under the terms of [[Common Public License]] v1.0.
 
EMMA is not currently under active development; the last stable release took place in mid-2005. As replacement, JaCoCo was developed.<ref>[http://sourceforge.net/projects/emma/files/ EMMA code coverage files on SourceForge.net]</ref>
EMMA works by wrapping each line of code and each condition with a flag, which is set when that line is executed.<ref>[https://books.google.com/books?id=L7d0LNpSrRwC&pg=PA289&dq=EMMA+%28code+coverage+tool%29&hl=en&ei=_pXATYmrJqrv0gHoroirBQ&sa=X&oi=book_result&ct=result&resnum=8&ved=0CG0Q6AEwBw#v=onepage&q&f=false Expert Spring MVC and Web Flow; By Seth Ladd, Darren Davison, Steven Devijver, Colin Yates, p. 289]</ref>
 
=== Features ===
* instrument classes for coverage either offline (before they are loaded) or on the fly (using an instrumenting application classloader).
* Supported coverage types: class, method, line, basic block. EMMA can detect when a single source code line is covered only partially.
* Coverage stats are aggregated at method, class, package, and "all classes" levels.
* Output report types: plain text, HTML, XML. All report types support drill-down, to a user-controlled detail depth. The HTML report supports source code linking.
* Output reports can highlight items with coverage levels below user-provided thresholds.
* Coverage data obtained in different instrumentation or test runs can be merged.
* it is possible to dump or reset coverage data remotely and without a JVM exit.
* does not require access to the source code and degrades gracefully with decreasing amount of debug information available in the input classes.
* can instrument individual .class files or entire .jars (in place, if desired). Efficient coverage subset filtering is possible, too.
* Makefile and ANT build integration are supported on equal footing.
* The runtime overhead of added instrumentation is small (5–20%) and the bytecode instrumentor itself is very fast (mostly limited by file I/O speed). Memory overhead is a few hundred bytes per Java class.
* EMMA is 100% pure Java, has no external library dependencies, and works in any Java 2 JVM (even 1.2.x).
 
== Serenity ==
Line 218 ⟶ 189:
 
{{Clear}}
 
= Notable historic tools =
== EMMA ==
{{Infobox software
| name = EMMA
| developer = Vlad Roubtsov
| latest release version = 2.1
| latest release date = {{Release date and age|2005|05|13}}
| genre = [[Code coverage]]
| license = Common Public License 1.0
| repo = {{URL|https://sourceforge.net/projects/emma/}}
| website = {{URL|emma.sourceforge.net}}
}}
'''EMMA''' is an [[open-source software|open-source]] toolkit for measuring and reporting [[Java (programming language)|Java]] [[code coverage]]. EMMA is distributed under the terms of [[Common Public License]] v1.0.
 
EMMA is not currently under active development; the last stable release took place in mid-2005. As replacement, JaCoCo was developed.<ref>[http://sourceforge.net/projects/emma/files/ EMMA code coverage files on SourceForge.net]</ref>
EMMA works by wrapping each line of code and each condition with a flag, which is set when that line is executed.<ref>[https://books.google.com/books?id=L7d0LNpSrRwC&pg=PA289&dq=EMMA+%28code+coverage+tool%29&hl=en&ei=_pXATYmrJqrv0gHoroirBQ&sa=X&oi=book_result&ct=result&resnum=8&ved=0CG0Q6AEwBw#v=onepage&q&f=false Expert Spring MVC and Web Flow; By Seth Ladd, Darren Davison, Steven Devijver, Colin Yates, p. 289]</ref>
 
=== Features ===
* instrument classes for coverage either offline (before they are loaded) or on the fly (using an instrumenting application classloader).
* Supported coverage types: class, method, line, basic block. EMMA can detect when a single source code line is covered only partially.
* Coverage stats are aggregated at method, class, package, and "all classes" levels.
* Output report types: plain text, HTML, XML. All report types support drill-down, to a user-controlled detail depth. The HTML report supports source code linking.
* Output reports can highlight items with coverage levels below user-provided thresholds.
* Coverage data obtained in different instrumentation or test runs can be merged.
* it is possible to dump or reset coverage data remotely and without a JVM exit.
* does not require access to the source code and degrades gracefully with decreasing amount of debug information available in the input classes.
* can instrument individual .class files or entire .jars (in place, if desired). Efficient coverage subset filtering is possible, too.
* Makefile and ANT build integration are supported on equal footing.
* The runtime overhead of added instrumentation is small (5–20%) and the bytecode instrumentor itself is very fast (mostly limited by file I/O speed). Memory overhead is a few hundred bytes per Java class.
* EMMA is 100% pure Java, has no external library dependencies, and works in any Java 2 JVM (even 1.2.x).
 
== See also ==