Here is an emma.xsl that can be used to show the emma report in Cruise Control. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" /> <xsl:template match="/"> <mce:script type="text/javascript"><!-- function openPackage(id) { var obj = document.getElementById(id); obj.style.display = obj.style.display=="none"?"":"none"; } // --></mce:script> <xsl:apply-templates select="cruisecontrol/report" mode="report" /> </xsl:template> <xsl:template match="report" mode="report"> <table align="center" cellpadding="2" cellspacing="0" border="0" width="98%"> <tr> <td class="model-sectionheader" align="center"> <xsl:text>EMMA Coverage Report</xsl:text> </td> </tr> </table> <table align="center" cellpadding="2" cellspacing="0" border="0" width="98%"> <tr class="unittests-title"> <td> OVERALL COVERAGE SUMMARY </td> </tr> </table> <table align="center" cellpadding="2" cellspacing="0" border="0" width="98%"> <xsl:apply-templates mode="summaryHeader" /> <xsl:apply-templates mode="overallCoverageSummary" /> </table> <table align="center" cellpadding="2" cellspacing="0" border="0" width="98%"> <tr class="unittests-title"> <td> OVERALL STATS SUMMARY </td> </tr> </table> <table align="center" cellpadding="2" cellspacing="0" border="0" width="98%"> <xsl:choose> <xsl:when test="stats/packages"> <tr> <td width="30%" class="checkstyle-data"> total packages: </td> <td width="70%" class="checkstyle-data"> <xsl:apply-templates select="stats/packages" mode="summary" /> </td> </tr> </xsl:when> </xsl:choose> <xsl:choose> <xsl:when test="stats/srcfiles"> <tr> <td> total executable files: </td> <td class="checkstyle-data"> <xsl:apply-templates select="stats/srcfiles" mode="summary" /> </td> </tr> </xsl:when> </xsl:choose> <xsl:choose> <xsl:when test="stats/classes"> <tr> <td class="checkstyle-data"> total classes: </td> <td class="checkstyle-data"> <xsl:apply-templates select="stats/classes" mode="summary" /> </td> </tr> </xsl:when> </xsl:choose> <xsl:choose> <xsl:when test="stats/methods"> <tr> <td class="checkstyle-data"> total methods: </td> <td class="checkstyle-data"> <xsl:apply-templates select="stats/methods" mode="summary" /> </td> </tr> </xsl:when> </xsl:choose> <xsl:choose> <xsl:when test="stats/srclines"> <tr> <td class="checkstyle-data"> total executable lines: </td> <td class="checkstyle-data"> <xsl:apply-templates select="stats/srclines" mode="summary" /> </td> </tr> </xsl:when> </xsl:choose> </table> <table align="center" cellpadding="2" cellspacing="0" border="0" width="98%"> <tr class="unittests-title"> <td> COVERAGE BREAKDOWN BY PACKAGE </td> </tr> </table> <table align="center" cellpadding="2" cellspacing="0" border="0" width="98%"> <xsl:apply-templates mode="summaryHeader" /> <xsl:apply-templates mode="coverageBreakdownByPackage" /> </table> </xsl:template> <!-- summary --> <xsl:template match="packages" mode="summary"> <xsl:value-of select="@value" /> </xsl:template> <xsl:template match="classes" mode="summary"> <xsl:value-of select="@value" /> </xsl:template> <xsl:template match="methods" mode="summary"> <xsl:value-of select="@value" /> </xsl:template> <xsl:template match="srcfiles" mode="summary"> <xsl:value-of select="@value" /> </xsl:template> <xsl:template match="srclines" mode="summary"> <xsl:value-of select="@value" /> </xsl:template> <!-- all classes summary --> <xsl:template match="all[coverage]" mode="overallCoverageSummary"> <tr class="model-info"> <td class="checkstyle-data"> <xsl:value-of select="@name" /> </td> <xsl:for-each select="coverage"> <xsl:variable name="statvalue" select="substring-before(@value,'%')" /> <xsl:choose> <xsl:when test="$statvalue = '100'"> <td class="checkstyle-data"> <xsl:value-of select="@value" /> </td> </xsl:when> <xsl:otherwise> <td class="checkstyle-error"> <xsl:value-of select="@value" /> </td> </xsl:otherwise> </xsl:choose> </xsl:for-each> </tr> </xsl:template> <!-- coverage breakdown by package --> <xsl:template match="all[package]" mode="coverageBreakdownByPackage"> <xsl:for-each select="package"> <xsl:variable name="packageid" select="position()" /> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="class">checkstyle-oddrow</xsl:attribute> </xsl:if> <td class="checkstyle-data" width="130"> <a href="javascript:openPackage('package{$packageid}');" mce_href="javascript:openPackage('package{$packageid}');"> <xsl:value-of select="@name" /> </a> </td> <xsl:for-each select="coverage"> <xsl:variable name="statvalue" select="substring-before(@value,'%')" /> <xsl:choose> <xsl:when test="$statvalue = '100'"> <td class="checkstyle-data"> <xsl:value-of select="@value" /> </td> </xsl:when> <xsl:otherwise> <td class="checkstyle-error"> <xsl:value-of select="@value" /> </td> </xsl:otherwise> </xsl:choose> </xsl:for-each> </tr> <tr> <td colspan="50"> <xsl:choose> <xsl:when test="class"> <xsl:variable name="typecount" select="count(class/coverage)" /> <xsl:value-of select="typecount" /> <table align="right" id="package{$packageid}" cellpadding="2" cellspacing="0" border="0" width="98%" style="display:none;" mce_style="display:none;"> <tr class="unittests-title"> <td colspan="{$typecount}"> COVERAGE BREAKDOWN BY CLASS </td> </tr> <tr class="checkstyle-oddrow"> <td class="checkstyle-fileheader" width="30">No.</td> <td class="checkstyle-fileheader">name</td> <xsl:for-each select="coverage"> <td class="checkstyle-fileheader"> <xsl:value-of select="@type" /> </td> </xsl:for-each> </tr> <xsl:for-each select="class"> <xsl:variable name="classid" select="position()" /> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="class">checkstyle-oddrow</xsl:attribute> </xsl:if> <td class="checkstyle-data"> <xsl:value-of select="$classid" /> </td> <td class="checkstyle-data" width="200"> <a href="javascript:openPackage('class{$packageid}{$classid}');" mce_href="javascript:openPackage('class{$packageid}{$classid}');"> <xsl:value-of select="@name" /> </a> </td> <xsl:for-each select="coverage"> <xsl:variable name="statvalue" select="substring-before(@value,'%')" /> <xsl:choose> <xsl:when test="$statvalue = '100'"> <td class="checkstyle-data"> <xsl:value-of select="@value" /> </td> </xsl:when> <xsl:otherwise> <td class="checkstyle-error"> <xsl:value-of select="@value" /> </td> </xsl:otherwise> </xsl:choose> </xsl:for-each> </tr> <tr> <td colspan="5"> <xsl:choose> <xsl:when test="method"> <xsl:variable name="typecount" select="count(method/coverage)" /> <table align="right" id="class{$packageid}{$classid}" cellpadding="2" cellspacing="0" border="0" width="98%" style="background:#efefef;display:none;" mce_style="background:#efefef;display:none;"> <tr class="unittests-title"> <td colspan="{$typecount}"> COVERAGE BREAKDOWN BY METHOD </td> </tr> <tr class="checkstyle-oddrow"> <td class="checkstyle-fileheader" width="30">No.</td> <td class="checkstyle-fileheader">name</td> <xsl:for-each select="method[position()=1]/coverage"> <td class="checkstyle-fileheader"> <xsl:value-of select="@type" /> </td> </xsl:for-each> </tr> <xsl:for-each select="method"> <xsl:variable name="methodid" select="position()" /> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="class">checkstyle-oddrow</xsl:attribute> </xsl:if> <td class="checkstyle-data"> <xsl:value-of select="$methodid" /> </td> <td class="checkstyle-data" width="75%"> <xsl:value-of select="@name" /> </td> <xsl:for-each select="coverage"> <xsl:variable name="statvalue" select="substring-before(@value,'%')" /> <xsl:choose> <xsl:when test="$statvalue = '100'"> <td class="checkstyle-data" width="10%"> <xsl:value-of select="@value" /> </td> </xsl:when> <xsl:otherwise> <td class="checkstyle-error" width="10%"> <xsl:value-of select="@value" /> </td> </xsl:otherwise> </xsl:choose> </xsl:for-each> </tr> </xsl:for-each> </table> </xsl:when> </xsl:choose> </td> </tr> </xsl:for-each> </table> </xsl:when> </xsl:choose> </td> </tr> </xsl:for-each> </xsl:template> <!-- src files summary --> <xsl:template match="all[srcfile]" mode="srcfileSummary"> <tr class="model-info"> <td class="checkstyle-data"> <xsl:value-of select="@name" /> </td> <xsl:for-each select="coverage"> <xsl:variable name="statvalue" select="substring-before(@value,'%')" /> <xsl:choose> <xsl:when test="$statvalue = '100'"> <td class="checkstyle-data"> <xsl:value-of select="@value" /> </td> </xsl:when> <xsl:otherwise> <td class="checkstyle-error"> <xsl:value-of select="@value" /> </td> </xsl:otherwise> </xsl:choose> </xsl:for-each> </tr> </xsl:template> <!-- headers --> <xsl:template match="all[coverage]" mode="summaryHeader"> <tr class="checkstyle-oddrow"> <td class="checkstyle-fileheader">name</td> <xsl:for-each select="coverage"> <td class="checkstyle-fileheader"> <xsl:value-of select="@type" /> </td> </xsl:for-each> </tr> </xsl:template> </xsl:stylesheet>