Skip to content

Instantly share code, notes, and snippets.

@chillitom
Created December 17, 2012 22:37
Show Gist options
  • Save chillitom/4323072 to your computer and use it in GitHub Desktop.
Save chillitom/4323072 to your computer and use it in GitHub Desktop.
XSLT to convert OpenCover xml to NCover 1.x format for use with Bamboo
<!-- example msbuild target -->
<Target Name="TranslateCoverageXml">
<ItemGroup>
<CoverageFiles Include="$(TestsDir)\*.opencover" />
</ItemGroup>
<XslTransformation XmlInputPaths="%(CoverageFiles.Identity)"
XslInputPath="$(MSBuildProjectDirectory)\opencover_to_ncover.xslt"
OutputPaths="$(TestsDir)\%(CoverageFiles.FileName).ncover.xml" />
</Target>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" standalone="yes"/>
<xsl:template match="/CoverageSession/Modules">
<coverage>
<xsl:for-each select="Module[not(@skippedDueTo)]">
<module name="{ModuleName}">
<xsl:for-each select="Classes/Class">
<xsl:if test="count(Methods/Method) &gt; 0">
<class name="{FullName}">
<xsl:variable name="className" select="FullName" />
<xsl:for-each select="Methods/Method">
<method class="{$className}">
<xsl:for-each select="SequencePoints/SequencePoint">
<seqpnt visitcount="{@vc}" />
</xsl:for-each>
</method>
</xsl:for-each>
</class>
</xsl:if>
</xsl:for-each>
</module>
</xsl:for-each>
</coverage>
</xsl:template>
</xsl:stylesheet>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment