]> granicus.if.org Git - check/commitdiff
* Transforms check XML to format suitable for JUnit
authorhugo303 <hugo303@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Fri, 19 Oct 2012 08:39:39 +0000 (08:39 +0000)
committerhugo303 <hugo303@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Fri, 19 Oct 2012 08:39:39 +0000 (08:39 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@633 64e312b2-a51f-0410-8e61-82d0ca0eb02a

NEWS
contrib/XML_for_JUnit.xsl [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 73fa32c397c554083b7afacb740585f5e65b3f60..65aa04fc2a4d8cf1764ba49ae0c16d18f1597d5c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,7 @@
 In development.
 
+* Added contrib/XML_for_JUnit.xsl from feature request #3521371 on SF.
+
 * Added support for setting log files via environment variables.
   Patch #3576713 on SF.
 
diff --git a/contrib/XML_for_JUnit.xsl b/contrib/XML_for_JUnit.xsl
new file mode 100644 (file)
index 0000000..16f184b
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xsl:stylesheet version="1.0" xmlns:src="http://check.sourceforge.net/ns" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">\r
+       <xsl:output indent="yes"/>\r
+       <xsl:template match="/src:testsuites">\r
+               <xsl:element name="testsuites">\r
+                       <xsl:apply-templates select="src:suite"/>\r
+               </xsl:element>\r
+       </xsl:template>\r
+       <xsl:template match="src:suite">\r
+               <xsl:element name="testsuite">\r
+                       <xsl:attribute name="failures"><xsl:value-of select="count(src:test[@result='failure'])"/></xsl:attribute>\r
+                       <xsl:attribute name="errors">0</xsl:attribute>\r
+                       <xsl:attribute name="tests"><xsl:value-of select="count(src:test)"/></xsl:attribute>\r
+                       <xsl:attribute name="name"><xsl:value-of select="src:title"/></xsl:attribute>\r
+                       <xsl:apply-templates select="src:test"/>\r
+               </xsl:element>\r
+       </xsl:template>\r
+       <xsl:template match="src:test">\r
+               <xsl:element name="testcase">\r
+                       <xsl:attribute name="name"><xsl:value-of select="src:id"/></xsl:attribute>\r
+                       <xsl:attribute name="time"><xsl:value-of select="src:duration"/></xsl:attribute>\r
+                       <xsl:if test="@result='failure'">\r
+                               <xsl:call-template name="failure"/>\r
+                       </xsl:if>\r
+               </xsl:element>\r
+       </xsl:template>\r
+       <xsl:template name="failure">\r
+               <xsl:element name="failure">\r
+                       <xsl:attribute name="message"><xsl:value-of select="src:message"/></xsl:attribute>\r
+                       <xsl:value-of select="src:path"/><xsl:text>/</xsl:text><xsl:value-of select="src:fn"/>\r
+               </xsl:element>\r
+       </xsl:template>\r
+</xsl:stylesheet>\r