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>
|
| 16 |
|
| 17 | <h1>Mission</h1>
|
| 18 |
|
| 19 | <p class="intro">
|
| 20 | JaCoCo should become the standard tool for instrumentation based code coverage
|
| 21 | in Java VM based environments. The focus is providing a lightweight, flexible
|
| 22 | and well documented library for integration with various build and development
|
| 23 | tools.
|
| 24 | </p>
|
| 25 |
|
| 26 | <p>
|
| 27 | There are several open source coverage technologies for Java. While
|
| 28 | implementing the Eclipse plug-in <a href="http://www.eclemma.org/">EclEmma</a>
|
| 29 | the observation was that none of them are really designed for integration.
|
| 30 | Most of them are build for a particular tool (Ant tasks, command line, IDE
|
| 31 | plug-in) and do not offer a documented API that allows embedding in different
|
| 32 | contexts. One of the best and widely used available open source tools is
|
| 33 | <a href="http://emma.sourceforge.net/">EMMA</a>. While EclEmma is based on it
|
| 34 | the EMMA library is not actively maintained any more by the original author.
|
| 35 | Due to the lack of regression tests maintenance and feature additions will
|
| 36 | become very difficult.
|
| 37 | </p>
|
| 38 |
|
| 39 | <p>
|
| 40 | JaCoCo should become the standard tool for instrumentation based code coverage
|
| 41 | in Java VM based environments. The focus is providing a lightweight, flexible
|
| 42 | and well documented library for integration with various build and development
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 43 | tools. <a href="ant.html">Ant tasks</a> are provided as reference usage
|
| 44 | scenarios. Other tools like a ready to use
|
| 45 | <a href="http://www.eclipse.org/">Eclipse</a> plug-in (future version of
|
| 46 | <a href="http://www.eclemma.org/">EclEmma</a>) or a
|
| 47 | <a href="http://maven.apache.org/">Maven</a> plug-ins might follow.
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 48 | </p>
|
| 49 |
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 50 | <h2>Product Definition</h2>
|
| 51 |
|
| 52 | <h3>Features</h3>
|
| 53 | <ul>
|
| 54 | <li><i>Statement coverage</i> on Java byte code level, where instrumentation
|
| 55 | and recording happens on
|
| 56 | <a class="extern" href="http://en.wikipedia.org/wiki/Basic_block"><i>basic block</i></a>
|
| 57 | granularity. This is the same mechanism implemented by the
|
| 58 | <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^] | 59 | <li>Simple integration through Java agent based on-the-fly instrumentation.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 60 | <li>Optional: Branch coverage based on basic block flow.</li>
|
| 61 | <li>Optional: Invocation counting.</li>
|
| 62 | <li>Optional: Better handling of Exception within blocks. (e.g. record exception on active counter)</li>
|
| 63 | <li>Several report formats (HTML, XML, CSV).</li>
|
| 64 | </ul>
|
| 65 |
|
| 66 | <h3>Non-Functional Characteristics</h3>
|
| 67 | <ul>
|
| 68 | <li>Lightweight implementation with minimal dependencies on external libraries
|
| 69 | and system resources.</li>
|
| 70 | <li>Fully documented API (JavaDoc) including descriptions of the basic
|
| 71 | concepts.</li>
|
| 72 | <li>Regression tests with full functional test coverage based on JUnit test
|
| 73 | cases.</li>
|
| 74 | </ul>
|
| 75 |
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 76 | <div class="footer">
|
Marc R. Hoffmann | afe929b | 2009-08-05 09:19:00 +0000 | [diff] [blame] | 77 | <div class="versioninfo"><a href="@HOMEURL@">JaCoCo</a> @VERSION@</div>
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 78 | <a href="license.html">Copyright</a> © 2009 Mountainminds GmbH & Co. KG and Contributors
|
| 79 | </div>
|
| 80 |
|
| 81 | </body>
|
| 82 | </html> |