Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 1 | <?xml version="1.0" encoding="ISO-8859-1" ?>
|
| 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
| 3 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
| 4 | <head>
|
| 5 | <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
|
| 6 | <link rel="stylesheet" href=".resources/doc.css" charset="ISO-8859-1" type="text/css" />
|
| 7 | <title>JaCoCo - Mission</title>
|
| 8 | </head>
|
| 9 | <body>
|
| 10 |
|
| 11 | <div class="breadcrumb">
|
| 12 | <a href="../index.html" class="el_session">JaCoCo</a> >
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 13 | <a href="index.html" class="el_group">Documentation</a> >
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 14 | <span class="el_source">Mission</span>
|
| 15 | </div>
|
Marc R. Hoffmann | 17be269 | 2010-02-02 05:44:47 +0000 | [diff] [blame] | 16 | <div id="content">
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 17 |
|
| 18 | <h1>Mission</h1>
|
| 19 |
|
| 20 | <p class="intro">
|
| 21 | JaCoCo should become the standard tool for instrumentation based code coverage
|
| 22 | in Java VM based environments. The focus is providing a lightweight, flexible
|
| 23 | and well documented library for integration with various build and development
|
| 24 | tools.
|
| 25 | </p>
|
| 26 |
|
| 27 | <p>
|
Radek Liba | ad5fbc9 | 2009-10-26 13:26:53 +0000 | [diff] [blame] | 28 | There are several open source coverage technologies for Java available. While
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 29 | implementing the Eclipse plug-in <a href="http://www.eclemma.org/">EclEmma</a>
|
| 30 | the observation was that none of them are really designed for integration.
|
Radek Liba | ad5fbc9 | 2009-10-26 13:26:53 +0000 | [diff] [blame] | 31 | Most of them are specifically fit to a particular tool (Ant tasks, command line, IDE
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 32 | plug-in) and do not offer a documented API that allows embedding in different
|
| 33 | contexts. One of the best and widely used available open source tools is
|
| 34 | <a href="http://emma.sourceforge.net/">EMMA</a>. While EclEmma is based on it
|
| 35 | the EMMA library is not actively maintained any more by the original author.
|
| 36 | Due to the lack of regression tests maintenance and feature additions will
|
| 37 | become very difficult.
|
| 38 | </p>
|
| 39 |
|
| 40 | <p>
|
| 41 | JaCoCo should become the standard tool for instrumentation based code coverage
|
| 42 | in Java VM based environments. The focus is providing a lightweight, flexible
|
| 43 | and well documented library for integration with various build and development
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 44 | tools. <a href="ant.html">Ant tasks</a> are provided as reference usage
|
| 45 | scenarios. Other tools like a ready to use
|
| 46 | <a href="http://www.eclipse.org/">Eclipse</a> plug-in (future version of
|
| 47 | <a href="http://www.eclemma.org/">EclEmma</a>) or a
|
Marc R. Hoffmann | 45ff60e | 2009-10-09 09:28:30 +0000 | [diff] [blame] | 48 | <a href="http://maven.apache.org/">Maven</a> plug-in might follow.
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 49 | </p>
|
| 50 |
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 51 | <h2>Product Definition</h2>
|
| 52 |
|
| 53 | <h3>Features</h3>
|
| 54 | <ul>
|
| 55 | <li><i>Statement coverage</i> on Java byte code level, where instrumentation
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 56 | and recording happens on
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 57 | <a class="extern" href="http://en.wikipedia.org/wiki/Basic_block"><i>basic block</i></a>
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 58 | granularity. This is the same mechanism implemented by the
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 59 | <a class="extern" href="http://emma.sourceforge.net/">EMMA</a> library.</li>
|
Marc R. Hoffmann | d3aeb96 | 2009-08-19 06:32:08 +0000 | [diff] [blame] | 60 | <li>Simple integration through Java agent based on-the-fly instrumentation.</li>
|
Marc R. Hoffmann | 0e115f8 | 2010-02-02 05:27:59 +0000 | [diff] [blame] | 61 | <li>Framework agnostic: Smoothly integrates with Java VM based applications
|
| 62 | like plain Java programs, OSGi frameworks, web containers or EJB servers.</li>
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 63 | <li>Support for different
|
| 64 | <a href="http://en.wikipedia.org/wiki/List_of_JVM_languages">JVM languages</a>.</li>
|
| 65 | <li>Several report formats (HTML, XML, CSV).</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 66 | <li>Optional: Branch coverage based on basic block flow.</li>
|
| 67 | <li>Optional: Invocation counting.</li>
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 68 | <li>Optional: Better reporting of Exception within blocks.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 69 | </ul>
|
| 70 |
|
| 71 | <h3>Non-Functional Characteristics</h3>
|
| 72 | <ul>
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 73 | <li>Simple usage and integration with existing build scripts and tools.</li>
|
| 74 | <li>Good performance with minimal runtime overhead especially for large scale
|
| 75 | projects.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 76 | <li>Lightweight implementation with minimal dependencies on external libraries
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 77 | and system resources.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 78 | <li>Fully documented API (JavaDoc) including descriptions of the basic
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 79 | concepts.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 80 | <li>Regression tests with full functional test coverage based on JUnit test
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 81 | cases.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 82 | </ul>
|
| 83 |
|
Marc R. Hoffmann | 17be269 | 2010-02-02 05:44:47 +0000 | [diff] [blame] | 84 | </div>
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 85 | <div class="footer">
|
Marc R. Hoffmann | df6ff96 | 2010-04-09 15:31:22 +0000 | [diff] [blame^] | 86 | <div class="versioninfo"><a href="@jacoco.home.url@">JaCoCo</a> @qualified.bundle.version@</div>
|
| 87 | <a href="license.html">Copyright</a> © @copyright.years@ Mountainminds GmbH & Co. KG and Contributors
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 88 | </div>
|
| 89 |
|
| 90 | </body>
|
| 91 | </html> |