Emma

Deprecated: This plugin has been marked as deprecated. In general, this means that this plugin is either obsolete, no longer being developed, or may no longer work.

More information about the cause of this deprecation, and suggestions on how to proceed may be found at https://github.com/jenkinsci/jenkins/pull/5320.

This plugin allows you to capture code coverage report from Emma. Jenkins will generate the trend report of coverage.

This functionality is replaced by the JaCoCo Plugin now!

Usage with Maven2

1. With maven 2.2.x you don't need to add anything to your POM file.

2. Add the "emma:emma" goal to your build to generate Emma reports.

Jenkins Configuration

1.- Add "emma:emma" goal to your maven Build
2.- Enable recording Emma coverage report, and configure it.

3.- Optional: if you want to store html coverage files generated by Emma, configure a post-build action to do that.

Usage with ANT

1.- Create the taskdef and other necessary information for ANT:

 <property name="coverage.dir" value="${basedir}/coverage" />
 <property name="emma.dir" value="/usr/bin/emma" />
 <property name="src.dir" value="${basedir}/src/"/>
 <property name="class.dir" value="${basedir}/class/"/>
 <property name="instrumented.dir" value="${basedir}/inst/"/>
 <path id="emma.lib">
     <fileset dir="${emma.dir}">
         <include name="*.jar"/>
     </fileset>
 </path>
   
 <taskdef resource="emma_ant.properties" classpathref="emma.lib" />

coverage.dir is the location emma will generate the report data to, and emma.dir should be the location of the emma binaries on your system. src.dir is the location of your source files, class.dir is the location of your binary files to be instrumented, and instrumented.dir is the location to store the instrumented binaries.

2.- Tell emma where to find the code to instrument, and the new location to place that code. Note that you must instrument the code before running tests on it.

 <emma enabled="true">
     <instr instrpath="${class.dir}" destdir="${instrumented.dir}" metadatafile="${coverage.dir}/metadata.emma" merge="true">
         <filter excludes="au.com.jenisys.view.*"/>
     </instr>
 </emma>

Use instrpathref instead of instrpath in conjunction with a previously-defined path for more complex setups. Use the filter nested element to include or exclude certain code from being instrumented. For more information on the instr element, see http://emma.sourceforge.net/reference/ch02s03.html

3.- After the instrumented code has been run, tell emma how to prepare the reports:

 <emma enabled="true" >
     <report sourcepath="${src.dir}" >
         <fileset dir="${coverage.dir}" >
             <include name="*.emma" />
         </fileset>

         <xml outfile="${coverage.dir}/coverage.xml" depth="method"/>
     </report>
 </emma>

This will generate an xml report, to the method depth of detail. For more information on the report element, see http://emma.sourceforge.net/reference/ch02s04.html

Change Log

Version 1.28 (May 21, 2012)

  • Do not sort "Total" row.
  • Sort line numerically.
  • Don't include jobs which doesn't have a coverage in dashboard.

Version 1.27 (May 5, 2012)

  • Enable development in Eclipse under M2E plugin (pull request #2).
  • Failed to load hudson.plugins.emma.portlet.grid.EmmaBuilderGrid$EmmaGridDescriptor (JENKINS-12447).
  • Failed to load hudson.plugins.emma.portlet.chart.EmmaBuilderTrendChart$DescriptorImpl (JENKINS-8839).
  • Emma plugin causes maven release job to fail (JENKINS-10236).

Version 1.26 (Oct 18, 2011)

  • Fixed broken image link on config screen.
  • expand job parameters for report search path (JENKINS-11351).
  • bumped dashboard plugin.
  • added test class.

Version 1.25 (May 11, 2011)

  • Fixed a NPE that could be thrown when parsing fails due to malformed coverage.xml files.

Version 1.24 (Feb 8, 2011)

  • Dashboard portlets. Emma portlets for the Dashboard view plugin, a grid and a trend chart.

Version 1.23 (unreleased)

Version 1.21 (Sep 11, 2010)

  • Fixed deprecated API.
  • Added Japanese localization.
  • Restored the floatingBox.jelly which was deleted in previous version.(JENKINS-7383)
  • Help file is missing, so deleted the link.(JENKINS-7381)
  • Added enlarge link.
  • Removed refresh from coverage pages.(JENKINS-7428)

Version 1.20 (Mar 18, 2010)

  • Improve Styling

Version 1.16 (Mar 09, 2010)

  • Fixed sort in tables

Version 1.12 (Feb 21, 2010)

  • Support for multimodule projects
  • Able to automatically look for coverage.xml files in the workspace
  • Internationalization
  • Spanish translation

Version 1.10 (Jun 9, 2009)

  • Remote API improvement (patch)

Version 1.9 (Apr 6, 2009)

  • Emma plugin now works with the Maven2 project type (JENKINS-3424)