Generating selenium reports using TestNG-xslt through Ant
Generating selenium reports using TestNG-xslt through Ant
TestNG-xslt generates user
friendly reports using the TestNG results output (testng-results.xml). Its uses
the pure XSL for report generation and Saxon as an XSL2.0 implementation.
Most of the material is taken from the original site.
http://code.google.com/p/testng-xslt/
I will tell in this blog how to implement this report for your project. This
implementation will tell you how to generate the testng-xslt report using ant.
If your current project does not use ant build then you can use ant only for
the report generation purpose.
If you dont know ant please check the Apache ant website
http://ant.apache.org/.
For generating testng-xslt report for your project do the following:
1. Download the testng-xslt
2. Unzip and copy the testng-results.xsl from the testng-xslt folder(testng-xslt-1.1\src\main\resources)
to your own project folder.
3. Now copy the saxon library from (testng-xslt-1.1\lib\saxon-8.7.jar)to your
project lib folder.
4. Modify your build.xml of ant and add the following target to it.
<project
name="test" basedir=".">
<property
name="LIB" value="${basedir}/libs" />
<property
name="BIN" value="${basedir}/bin" />
<path
id="master-classpath">
<pathelement
location="${BIN}" />
<fileset
dir="${LIB}">
<include
name="**/*.jar" />
</fileset>
</path>
<target
name="testng-xslt-report">
<delete
dir="${basedir}/testng-xslt">
</delete>
<mkdir
dir="${basedir}/testng-xslt">
</mkdir>
<xslt
in="${basedir}/test-output/testng-results.xml"
style="${basedir}/testng-results.xsl"
out="${basedir}/testng-xslt/index.html">
<param
expression="${basedir}/testng-xslt/"
name="testNgXslt.outputDir"
/>
<param
expression="true" name="testNgXslt.sortTestCaseLinks"
/>
<param
expression="FAIL,SKIP,PASS,CONF,BY_CLASS"
name="testNgXslt.testDetailsFilter"
/>
<param
expression="true" name="testNgXslt.showRuntimeTotals"
/>
<classpath
refid="master-classpath">
</classpath>
</xslt>
</target>
</project>
The
XSL transformation can be configured using the parameters described below.
- testNgXslt.outputDir
- Sets the target output directory for the HTML content. This is mandatory
and must be an absolute path. If you are using the Maven plugin this is
set automatically so you don't have to provide it.
- testNgXslt.cssFile -
Specifies and alternative style sheet file overriding the default
settings. This parameter is not required.
- testNgXslt.showRuntimeTotals - Boolean flag indicating if the report should display the
aggregated information about the methods durations. The information is
displayed for each test case and aggregated for the whole suite.
Non-mandatory parameter, defaults to false.
- testNgXslt.reportTitle
- Use this setting to specify a title for your HTML reports. This is not a
mandatory parameter and defaults to "TestNG Results".
- testNgXslt.sortTestCaseLinks - Indicates whether the test case links (buttons) in the left
frame should be sorted alphabetically. By default they are rendered in the
order they are generated by TestNG so you should set this to true to
change this behavior.
- testNgXslt.chartScaleFactor - A scale factor for the SVG pie chart in case you want it
larger or smaller. Defaults to 1.
- testNgXslt.testDetailsFilter - Specified the default settings for the checkbox filters at the
top of the test details page. Can be any combination (comma-separated) of:
FAIL,PASS,SKIP,CONF,BY_CLASS
You
need to provide the testng-xslt stylesheet the TestNG results
xml(testng-results.xml) , the path to the style sheet testng-results.xsl and
the output index.html path.
Also dont forget to add the saxon library to your
target classpath else you will get an error. In my case it is the
master-classpath.
Noe run the ant target for report generation (in
my case "testng-xslt-report") and check the ouput folder configured
by you for testng-xslt report.