Advertisement
pauloalves1986

Transform Boost.Test XML output to JUnit format

Aug 30th, 2012
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 1.94 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  3.   <xsl:param name="package"/>
  4.   <xsl:output method="xml" indent="yes"/>
  5.   <xsl:template match="TestLog">
  6.       <xsl:call-template name="testSuite"/>
  7.   </xsl:template>
  8.   <xsl:template name="testSuite">
  9.     <xsl:for-each select="TestSuite">
  10.       <testsuite>
  11.         <xsl:attribute name="package">
  12.             <xsl:value-of select="$package"/>
  13.         </xsl:attribute>
  14.  
  15.         <xsl:attribute name="name">
  16.           <xsl:value-of select="@name"/>
  17.         </xsl:attribute>
  18.         <!--results-->
  19.           <xsl:call-template name="testSuite"/>
  20.           <xsl:for-each select="TestCase">
  21.             <testcase>
  22.               <xsl:call-template name="testAttributes"/>
  23.               <xsl:call-template name="testCaseElements"/>
  24.             </testcase>
  25.           </xsl:for-each>
  26.         <!--/results-->
  27.       </testsuite>
  28.     </xsl:for-each>
  29.   </xsl:template>
  30.   <xsl:template name="testAttributes">
  31.     <xsl:attribute name="name">
  32.       <xsl:value-of select="@name"/>
  33.     </xsl:attribute>
  34.     <xsl:attribute name="time">
  35.       <xsl:value-of select="TestingTime div 1000000"/>
  36.     </xsl:attribute>
  37.   </xsl:template>
  38.   <xsl:template name="testCaseElements">
  39.     <xsl:for-each select="Error|Exception">
  40.       <error>
  41.         <xsl:call-template name="caseElement"/>
  42.       </error>
  43.     </xsl:for-each>
  44.     <xsl:for-each select="Warning">
  45.       <failure>
  46.         <xsl:call-template name="caseElement"/>
  47.       </failure>
  48.     </xsl:for-each>
  49.   </xsl:template>
  50.   <xsl:template name="caseElement">
  51.     <xsl:attribute name="type">
  52.       <xsl:value-of select="@file"/>
  53.       <xsl:text>(</xsl:text>
  54.       <xsl:value-of select="@line"/>
  55.       <xsl:text>)</xsl:text>
  56.     </xsl:attribute>
  57.     <xsl:value-of select="."/>
  58.   </xsl:template>
  59. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement