[Cppunit-cvs] cppunit/contrib/xml-xsl cppunit2junit.txt,NONE,1.1 cppunit2junit.xsl,NONE,1.1
Brought to you by:
blep
From: Baptiste L. <bl...@us...> - 2005-06-14 21:57:31
|
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 |