Update of /cvsroot/cppunit/cppunit/contrib/xml-xsl
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9184/contrib/xml-xsl
Added Files:
cppunit2junit.txt cppunit2junit.xsl
Log Message:
* contrib/xml-xsl/cppunit2junit.txt
* contrib/xml-xsl/cppunit2junit.xsl
* contrib/readme.txt: XSLT for compatibility with Ant junit xml formatter.
Patch #1112053 contributed by Norbert Barbosa.
--- NEW FILE: cppunit2junit.xsl ---
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<testsuite>
<xsl:attribute name="errors">
<xsl:value-of select="TestRun/Statistics/Errors"/>
</xsl:attribute>
<xsl:attribute name="failures">
<xsl:value-of select="TestRun/Statistics/Failures"/>
</xsl:attribute>
<xsl:attribute name="tests">
<xsl:value-of select="TestRun/Statistics/Tests"/>
</xsl:attribute>
<xsl:attribute name="name">from cppunit</xsl:attribute>
<xsl:apply-templates/>
</testsuite>
</xsl:template>
<xsl:template match="/TestRun/SuccessfulTests/Test">
<testcase>
<xsl:attribute name="classname" ><xsl:value-of select="substring-before(Name, '::')"/></xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="substring-after(Name, '::')"/></xsl:attribute>
</testcase>
</xsl:template>
<xsl:template match="/TestRun/FailedTests/FailedTest">
<testcase>
<xsl:attribute name="classname" ><xsl:value-of select="substring-before(Name, '::')"/></xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="substring-after(Name, '::')"/></xsl:attribute>
<error>
<xsl:attribute name="message">
<xsl:value-of select=" normalize-space(Message)"/>
</xsl:attribute>
<xsl:attribute name="type">
<xsl:value-of select="FailureType"/>
</xsl:attribute>
<xsl:value-of select="Message"/>
File:<xsl:value-of select="Location/File"/>
Line:<xsl:value-of select="Location/Line"/>
</error>
</testcase>
</xsl:template>
<!-- skip all text -->
<xsl:template match="text()|@*"/>
</xsl:stylesheet><!-- Stylus Studio meta-information - (c)1998-2001 eXcelon Corp.
<metaInformation>
<scenarios ><scenario default="yes" name="test" userelativepaths="yes" url="..\..\..\..\..\Tmp\xml\cppunit.xml" htmlbaseurl="" processortype="internal" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext=""/></scenarios><MapperInfo srcSchemaPath="..\..\..\..\..\Tmp\xml\cppunit.xml" srcSchemaRoot="TestRun" srcSchemaPathIsRelative="yes" destSchemaPath="..\..\..\..\..\Tmp\xml\TEST-test.osmoose.license.TestUtils.xml" destSchemaRoot="testsuite" destSchemaPathIsRelative="yes" />
</metaInformation>
-->
--- NEW FILE: cppunit2junit.txt ---
A simple XSLT file to transform cppunit XmlOutputer
result file, to the same format that the apache Ant
junit task produce:
<target name="test">
<junit printsummary="no" forkmode="once"
fork="true">
<formatter type="xml"/>
...
This format allows to manage result file with the Ant
junitreport task.
example usage inside a ant task:
task similar to the junit task:
<target name = "test.cxx">
<!-- assume that the exe take a '-xml
filename', and exit with code error 1 if failed -->
<exec dir = "${dev.build}/bin"
executable = "${dev.build}/bin/test.exe"
failonerror = "true"
failifexecutionfails = "true"
resultproperty = "test.ret" >
<arg line = "-xml
${dev.build}/test/data/temp-cxx-results.xml" />
</exec>
<condition property = "test.failed">
<equals arg1="${test.ret}" arg2="1"/>
</condition>
<!-- transform the cppunit xml file to junit
xml file -->
<xslt
in="${dev.build}/test/data/temp-cxx-results.xml"
out="${dev.build}/test/data/TEST-cxx-results.xml"
style="${dev.lib}/cxx/cppunit/cppunit2junit.xsl"/>
<fail if="test.failed">
Unit tests failed. For error messages, check
the log files in
${dev.build}/test/data or run "ant test-reports"
to generate reports at
${test.dir}/reports.</fail>
</target>
task that use generated xml result, to produce html report:
<target name="test-reports" description="Generate
test reports from data collected after a running test">
<mkdir dir="${dev.build}/test/reports"/>
<junitreport todir="${dev.build}/test">
<fileset dir="${dev.build}/test/data">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames"
todir="${dev.build}/test/reports"/>
</junitreport>
</target>
BARBOSA Norbert - patch #1112053
http://sourceforge.net/tracker/index.php?func=detail&aid=1112053&group_id=11795&atid=311795
|