You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
4.6 KiB
102 lines
4.6 KiB
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
<link rel="stylesheet" href="resources/doc.css" charset="UTF-8" type="text/css" />
|
|
<link rel="shortcut icon" href="resources/report.gif" type="image/gif" />
|
|
<title>JaCoCo - Mission</title>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="breadcrumb">
|
|
<a href="../index.html" class="el_report">JaCoCo</a> >
|
|
<a href="index.html" class="el_group">Documentation</a> >
|
|
<span class="el_source">Mission</span>
|
|
</div>
|
|
<div id="content">
|
|
|
|
<h1>Mission</h1>
|
|
|
|
<p class="intro">
|
|
JaCoCo should provide the standard technology for code coverage analysis in
|
|
Java VM based environments. The focus is providing a lightweight, flexible and
|
|
well documented library for integration with various build and development
|
|
tools.
|
|
</p>
|
|
|
|
<p>
|
|
There are several open source coverage technologies for Java available. While
|
|
implementing the Eclipse plug-in <a href="http://www.eclemma.org/">EclEmma</a>
|
|
the observation was that none of them are really designed for integration.
|
|
Most of them are specifically fit to a particular tool (Ant tasks, command
|
|
line, IDE plug-in) and do not offer a documented API that allows embedding in
|
|
different contexts. Two of the best and widely used available open source
|
|
tools are <a href="http://emma.sourceforge.net/">EMMA</a> and
|
|
<a href="http://cobertura.sourceforge.net/">Cobertura</a>. Both tools are not
|
|
actively maintained by the original authors any more and do not support the
|
|
current Java versions. Due to the lack of regression tests maintenance and
|
|
feature additions is difficult.
|
|
</p>
|
|
|
|
<p>
|
|
Therefore we started the JaCoCo project to provide a new standard technology
|
|
for code coverage analysis in Java VM based environments. The focus is
|
|
providing a lightweight, flexible and well documented library for integration
|
|
with various build and development tools. <a href="ant.html">Ant tasks</a>, a
|
|
<a href="maven.html">Maven plug-in</a> and the
|
|
<a href="http://www.eclemma.org/">EclEmma Eclipse plug-in</a> are provided as
|
|
reference usage scenarios. Also many other tool vendors and Open Source
|
|
projects have <a href="integrations.html">integrated</a> JaCoCo into their
|
|
tools.
|
|
</p>
|
|
|
|
<h2>Product Definition</h2>
|
|
|
|
<h3>Features</h3>
|
|
<ul>
|
|
<li>Coverage <a href="counters.html">analysis</a> of instructions (C0),
|
|
branches (C1), lines, methods, types and cyclomatic complexity.</li>
|
|
<li>Based on Java byte code and therefore works also without source files.</li>
|
|
<li>Simple integration through <a href="agent.html">Java agent</a> based
|
|
on-the-fly instrumentation. Other integration scenarios like custom class
|
|
loaders are possible through the API.</li>
|
|
<li>Framework agnostic: Smoothly integrates with Java VM based applications
|
|
like plain Java programs, OSGi frameworks, web containers or EJB servers.</li>
|
|
<li>Compatible with all released Java class file versions.</li>
|
|
<li>Support for different
|
|
<a href="http://en.wikipedia.org/wiki/List_of_JVM_languages">JVM languages</a>.</li>
|
|
<li>Several report formats (HTML, XML, CSV).</li>
|
|
<li>Remote protocol and JMX control to request execution data dumps from the
|
|
coverage agent at any point in time.</li>
|
|
<li><a href="ant.html">Ant tasks</a> to collect and manage execution
|
|
data and create structured coverage reports.</li>
|
|
<li><a href="maven.html">Maven plug-in</a> to collect coverage information
|
|
and create reports in Maven builds.</li>
|
|
</ul>
|
|
|
|
<h3>Non-Functional Characteristics</h3>
|
|
<ul>
|
|
<li>Simple usage and integration with existing build scripts and tools.</li>
|
|
<li>Good performance with minimal runtime overhead especially for large scale
|
|
projects.</li>
|
|
<li>Lightweight implementation with minimal dependencies on external libraries
|
|
and system resources.</li>
|
|
<li>Comprehensive documentation.</li>
|
|
<li>Fully documented APIs (<a href="api/index.html">JavaDoc</a>) and
|
|
<a href="api.html">examples</a> for <a href="integrations.html">integration</a>
|
|
with other tools.</li>
|
|
<li>Regression <a href="../test/index.html">tests</a> with full functional
|
|
test <a href="../coverage/index.html">coverage</a> based on
|
|
<a href="http://junit.org/">JUnit</a> test cases.</li>
|
|
</ul>
|
|
|
|
</div>
|
|
<div class="footer">
|
|
<span class="right"><a href="@jacoco.home.url@">JaCoCo</a> @qualified.bundle.version@</span>
|
|
<a href="license.html">Copyright</a> © @copyright.years@ Mountainminds GmbH & Co. KG and Contributors
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|