Created
February 5, 2010 15:01
-
-
Save nalanj/295847 to your computer and use it in GitHub Desktop.
CruiseControl.NET Project Dashboard XSLT for NCover
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | |
<xsl:template match="/"> | |
<table cellspacing="0" cellpadding="2" border="0" width="98%" class="section-table"> | |
<col style="width: 1em;" /> | |
<col style="width: 1em;" /> | |
<col style="width: 1em;" /> | |
<col style="width: 1em;" /> | |
<col style="width: 100%;" /> | |
<tbody> | |
<tr> | |
<td colspan="5" class="sectionheader"> | |
NCover Code Coverage | |
</td> | |
</tr> | |
<tr> | |
<th style="white-space: nowrap;padding: 2px 8px;">Module</th> | |
<th style="white-space: nowrap;padding: 2px 8px;">Coverage %</th> | |
<th style="white-space: nowrap;padding: 2px 8px;">Acceptable %</th> | |
<th style="white-space: nowrap;padding: 2px 8px;">Verdict</th> | |
</tr> | |
<xsl:apply-templates select="//trendcoveragedata/mod" /> | |
<xsl:apply-templates select="//trendcoveragedata/stats" /> | |
</tbody> | |
</table> | |
</xsl:template> | |
<xsl:template match="//trendcoveragedata/mod"> | |
<xsl:variable name="coverage" select="stats/@vsp div (stats/@usp + stats/@vsp)" /> | |
<xsl:variable name="acceptable" select="number(stats/@acp)" /> | |
<tr> | |
<td><xsl:value-of select="assembly" /></td> | |
<td style="text-align: center; margin: 0 1em;"> | |
<xsl:choose> | |
<xsl:when test="string($coverage) = 'NaN'">N/A</xsl:when> | |
<xsl:otherwise><xsl:value-of select="format-number($coverage,'0.00%')" /></xsl:otherwise> | |
</xsl:choose> | |
</td> | |
<td style="text-align: center; margin: 0 1em;"><xsl:value-of select="format-number($acceptable,'0.00')" />%</td> | |
<td style="text-align: center;"> | |
<xsl:choose> | |
<xsl:when test="string($coverage) = 'NaN'">N/A</xsl:when> | |
<xsl:when test="($coverage * 100) >= $acceptable"> | |
<span style="color: green;">PASS</span> | |
</xsl:when> | |
<xsl:otherwise> | |
<span style="color: red;">FAIL</span> | |
</xsl:otherwise> | |
</xsl:choose> | |
</td> | |
</tr> | |
</xsl:template> | |
<xsl:template match="//trendcoveragedata/stats"> | |
<tr> | |
<th style="text-align: right;padding-top: 15px;white-space:nowrap;">Symbol Coverage</th> | |
<td style="padding-top: 15px;text-align: right;"><xsl:value-of select="format-number(@vsp div (@usp + @vsp),'0.00%')" /></td> | |
<th style="text-align: right;white-space:nowrap;padding-top: 15px;">Branch Coverage</th> | |
<td style="padding-top: 15px;text-align: right;"><xsl:value-of select="format-number(@vbp div (@ubp + @vbp),'0.00%')" /></td> | |
</tr> | |
<tr> | |
<th style="text-align: right;white-space:nowrap;">Visited Symbols</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@vsp,'#,##0')" /></td> | |
<th style="text-align: right;white-space:nowrap;">Visited Branch Points</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@vbp,'#,##0')" /></td> | |
</tr> | |
<tr> | |
<th style="text-align: right;white-space:nowrap;">Unvisited Symbols</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@usp,'#,##0')" /></td> | |
<th style="text-align: right;white-space:nowrap;">Unvisited Branch Points</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@ubp,'#,##0')" /></td> | |
</tr> | |
<tr> | |
<th style="text-align: right;white-space:nowrap;">Total Symbols</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@usp + @vsp,'#,##0')" /></td> | |
<th style="text-align: right;white-space:nowrap;">Total Branch Points</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@ubp + @vbp,'#,##0')" /></td> | |
</tr> | |
<tr><td></td></tr> | |
<tr> | |
<th style="text-align: right;white-space:nowrap;">Method Coverage</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@vm div (@um + @vm),'0.00%')" /></td> | |
<th style="text-align: right;white-space:nowrap;">Line Coverage</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@vl div (@ul + @vl),'0.00%')" /></td> | |
</tr> | |
<tr> | |
<th style="text-align: right;white-space:nowrap;">Visited Methods</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@vm,'#,##0')" /></td> | |
<th style="text-align: right;white-space:nowrap;">Visited Lines</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@vl,'#,##0')" /></td> | |
</tr> | |
<tr> | |
<th style="text-align: right;white-space:nowrap;">Unvisited Methods</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@um,'#,##0')" /></td> | |
<th style="text-align: right;white-space:nowrap;">Unvisited Lines</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@ul,'#,##0')" /></td> | |
</tr> | |
<tr> | |
<th style="text-align: right;white-space:nowrap;">Total Methods</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@um + @vm,'#,##0')" /></td> | |
<th style="text-align: right;white-space:nowrap;">Total Lines</th> | |
<td style="text-align: right;"><xsl:value-of select="format-number(@ul + @vl,'#,##0')" /></td> | |
</tr> | |
<tr><td></td></tr> | |
<tr> | |
<th style="text-align: right;white-space:nowrap;">Cyclomatic Complexity</th> | |
<td colspan="3"><xsl:value-of select="format-number(@ccavg,'#,##0.#')" /> Average, <xsl:value-of select="format-number(@ccmax,'#,##0')" /> Maximum</td> | |
</tr> | |
</xsl:template> | |
</xsl:stylesheet> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment