| Attribute | Description | Required |
|---|---|---|
[common EMMA task attributes] | No | |
instrpath | A path-like structure specifying the instrumentation path to use. | Either this attribute, or instrpathref
attribute, or at least one nested
<instrpath> element must be present. |
instrpathref | Same as instrpath, but given as a reference to a
path defined elsewhere. | Either this attribute, or instrpath
attribute, or at least one nested
<instrpath> element must be present. |
destdir, outdir | The location to store instrumented class files (in
fullcopy mode instrumented classes are stored in
destdir/classes and
instrumented archives are stored in
destdir/lib
subdirectories, respectively). Ignored if mode='overwrite'. | Yes, unless mode='overwrite' |
metadatafile, outfile | The location to store class coverage metadata (default:
file coverage.em in the current
directory). Neither particular file name nor extension are
required. | No |
merge | Indicates whether the metadata should be merged into
the destination metadatafile, if any
(default: true). Any existing data is
clobbered otherwise. | No |
mode | Specifies the instrumentation output mode. Valid values
for this property are:
| No |
filter | Adds an instrumentation filter. See Section 6.2, “Coverage filters” for general description of EMMA's instrumentation filters and Section 6.2.1, “filter syntax: ANT” specifically for ANT syntax. | No |
| Element | Description | Required |
|---|---|---|
[common EMMA task nested elements] | No | |
<instrpath> | A path-like structure that specifies the instrumentation path to use. | Either instrpath attribute, or instrpathref
attribute, or at least one nested
<instrpath> element must be present. |
<filter> | Adds an instrumentation filter. See Section 6.2, “Coverage filters” for general description of EMMA's instrumentation filters and Section 6.2.1, “filter syntax: ANT” specifically for ANT syntax. | No |
<instrpath> nested elements. <instrpath> is a path-like
structure used to select class files and
archives to be processed for instrumentation. If a duplicate class
name is encountered during a single instrumentation pass, only
the first class definition will be added to the class metadata emitted during this
instrumentation path. See Class metadata merging. for more details.
In-place instrument a certain subset of already compiled classes
using overwrite mode and several coverage filters:
<emma enabled="${emma.enabled}" >
<instr instrpathref="${out.dir}/classes"
mode="overwrite"
>
<!-- always exclude every class with a "Test" in the name: -->
<filter excludes="*Test*" />
<!-- don't instrument everything in "${out.dir}/classes",
only the stuff I am working on now: -->
<filter file="myincludes.txt" />
<!-- additional ANT command line hook: -->
<filter value="${emma.filter}" />
</instr>
</emma>
Don't overwrite compiled classes that later need to go into official
release jars (stay in copy mode). However, use incremental
instrumentation for fast personal testing:
<emma enabled="${emma.enabled}" >
<instr instrpathref="${out.dir}/classes"
outdir="${out.dir}/classes-instrumented"
merge="yes"
filter="${emma.filter}"
/>
</emma>
Take all jars already produced by the product build and make test (coverage-enabled) copies of them:
<emma enabled="${emma.enabled}" >
<instr mode="fullcopy"
outdir="${out.instr.dir}"
merge="no"
filter="${emma.filter}"
>
<instrpath>
<fileset dir="${out.dir}" includes="**/*.jar" />
</instrpath>
</instr>
</emma>