Added cactus report generation
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@113182 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
eeb57356a5
commit
fe548e72f8
@ -106,10 +106,64 @@
|
||||
<property name="cactus.context" value="${cactus.context}"/>
|
||||
</ant>
|
||||
|
||||
<j:set var="containerFound" value="true"/>
|
||||
</j:if>
|
||||
|
||||
</j:forEach>
|
||||
|
||||
<!-- If no container was defined, display a warning message -->
|
||||
<j:if test="${containerFound != 'true'}">
|
||||
<echo>WARNING: You need to define at least one container property of the form cactus.home.[container name]. See the plugin documentation.</echo>
|
||||
</j:if>
|
||||
|
||||
</goal>
|
||||
|
||||
<!--
|
||||
========================================================================
|
||||
Register a Cactus report.
|
||||
========================================================================
|
||||
-->
|
||||
<goal name="maven-cactus-plugin:register">
|
||||
<doc:registerReport
|
||||
name="Cactus Unit Tests"
|
||||
pluginName="cactus"
|
||||
description="Report on the results of the Cactus unit tests."
|
||||
link="cactus-report"/>
|
||||
</goal>
|
||||
|
||||
<!--
|
||||
========================================================================
|
||||
Deregister a Cactus report.
|
||||
========================================================================
|
||||
-->
|
||||
<goal name="maven-cactus-plugin:deregister">
|
||||
<doc:deregisterReport name="Cactus Unit Tests"/>
|
||||
</goal>
|
||||
|
||||
<!--
|
||||
========================================================================
|
||||
Generate a Cactus report.
|
||||
========================================================================
|
||||
-->
|
||||
<goal name="cactus:report"
|
||||
description="Generate a report from the test results">
|
||||
|
||||
<!-- Consolidate the reports into a single -->
|
||||
<junitreport todir="${cactus.target.dir}">
|
||||
<fileset dir="${cactus.reports.dir}">
|
||||
<include name="TEST-*.xml"/>
|
||||
</fileset>
|
||||
</junitreport>
|
||||
|
||||
<doc:jsl
|
||||
input="${cactus.target.dir}/TESTS-TestSuites.xml"
|
||||
output="cactus-report.xml"
|
||||
stylesheet="${plugin.resources}/cactus.jsl"
|
||||
omitXmlDeclaration="true"
|
||||
outputMode="xml"
|
||||
prettyPrint="true"
|
||||
/>
|
||||
|
||||
</goal>
|
||||
|
||||
</project>
|
||||
|
||||
@ -15,8 +15,8 @@
|
||||
# Location of Cactus tests in project sources
|
||||
cactus.src.dir = ${basedir}/src/test-cactus
|
||||
|
||||
# Location where the plugins puts temporary build-generated files
|
||||
cactus.target.dir = ${maven.build.dir}
|
||||
# Location where the plugins puts temporary Cactus build-generated files
|
||||
cactus.target.dir = ${maven.build.dir}/cactus
|
||||
|
||||
# Default port on which to start the containers
|
||||
cactus.port = 8080
|
||||
@ -29,3 +29,10 @@ cactus.src.excludes = **/AllTests.java,**/Test*All.java
|
||||
|
||||
# Default webapp context
|
||||
cactus.context = cactustest
|
||||
|
||||
# Decides whether the test result will be printed to the console or
|
||||
# not. Default is true
|
||||
cactus.junit.usefile = false
|
||||
|
||||
# Location of junit test reports for the Cactus tests
|
||||
cactus.reports.dir = ${cactus.target.dir}/test-cactus-reports
|
||||
|
||||
@ -1,271 +1,271 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<jsl:stylesheet
|
||||
select="$doc"
|
||||
xmlns:j="jelly:core"
|
||||
xmlns:jsl="jelly:jsl"
|
||||
xmlns:x="jelly:xml"
|
||||
xmlns:define="jelly:define"
|
||||
xmlns:util="jelly:util"
|
||||
xmlns:junit="junit"
|
||||
xmlns:doc="doc"
|
||||
trim="false">
|
||||
|
||||
<!-- This needs to be instantiated here to be available in the template matches -->
|
||||
<j:useBean var="mavenTool" class="org.apache.maven.MavenTool"/>
|
||||
<j:useBean var="numbers" class="java.text.DecimalFormat"/>
|
||||
<j:useBean var="htmlescape" class="org.apache.velocity.anakia.Escape"/>
|
||||
<j:useBean var="formatter" class="org.apache.maven.DVSLFormatter"/>
|
||||
<j:useBean var="fileutil" class="org.apache.velocity.texen.util.FileUtil"/>
|
||||
<j:useBean var="pathtool" class="org.apache.maven.DVSLPathTool"/>
|
||||
|
||||
|
||||
<define:taglib uri="junit">
|
||||
<define:tag name="nav">
|
||||
<p>
|
||||
[
|
||||
<a href="#Summary">summary</a>]
|
||||
[
|
||||
<a href="#Package List">package list</a>]
|
||||
[
|
||||
<a href="#Test Cases">test cases</a>]
|
||||
</p>
|
||||
</define:tag>
|
||||
|
||||
<define:tag name="testSuiteHeader">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Tests</th>
|
||||
<th>Errors</th>
|
||||
<th>Failures</th>
|
||||
<th>Time(s)</th>
|
||||
</tr>
|
||||
</define:tag>
|
||||
|
||||
<define:tag name="testCaseHeader">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Status</th>
|
||||
<th>Type</th>
|
||||
<th>Time(s)</th>
|
||||
</tr>
|
||||
</define:tag>
|
||||
|
||||
<define:tag name="displayFailure">
|
||||
<j:choose>
|
||||
<j:when test="${current.attribute('message') != null}">
|
||||
${htmlescape.getText(current.attribute('message').value)}
|
||||
</j:when>
|
||||
<j:otherwise>
|
||||
N/A
|
||||
</j:otherwise>
|
||||
<p/>
|
||||
<code>
|
||||
${htmlescape.getText(current.value())}
|
||||
</code>
|
||||
</j:choose>
|
||||
</define:tag>
|
||||
</define:taglib>
|
||||
|
||||
<jsl:template match="testsuites">
|
||||
<document>
|
||||
|
||||
<properties>
|
||||
<title>JUnit Test Results</title>
|
||||
</properties>
|
||||
|
||||
<body>
|
||||
<section name="Summary">
|
||||
<junit:nav/>
|
||||
<j:set var="testCount"><x:expr select="sum(testsuite/@tests)"/></j:set>
|
||||
<j:set var="errorCount"><x:expr select="sum(testsuite/@errors)"/></j:set>
|
||||
<j:set var="failureCount"><x:expr select="sum(testsuite/@failures)"/></j:set>
|
||||
<j:set var="timeCount"><x:expr select="sum(testsuite/@time)"/></j:set>
|
||||
<j:set var="successRate"><x:expr select="($testCount - ($failureCount + $errorCount)) div $testCount"/></j:set>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Tests</th>
|
||||
<th>Errors</th>
|
||||
<th>Failures</th>
|
||||
<th>Success rate</th>
|
||||
<th>Time(s)</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${testCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${errorCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${failureCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${successRate}" pattern="0.00%"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${timeCount}" pattern="0.00"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
Note:
|
||||
<i>failures</i> are anticipated and checked for with
|
||||
assertions while
|
||||
<i>errors</i> are unanticipated.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section name="Package List">
|
||||
<junit:nav/>
|
||||
<table>
|
||||
<!--
|
||||
<junit:testSuiteHeader/>
|
||||
-->
|
||||
<x:set var="testsuites" select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]"/>
|
||||
<j:forEach var="testsuite" items="${testsuites}">
|
||||
<j:set var="package" value="${testsuite.attribute('package').value}"/>
|
||||
<x:set var="quotedPackage" select='"${package}"'/>
|
||||
<j:set var="testCount"><x:expr select="sum(./testsuite[./@package = $quotedPackage]/@tests)"/></j:set>
|
||||
<j:set var="errorCount"><x:expr select="sum(./testsuite[./@package = $quotedPackage]/@errors)"/></j:set>
|
||||
<j:set var="failureCount"><x:expr select="sum(./testsuite[./@package = $quotedPackage]/@failures)"/></j:set>
|
||||
<j:set var="timeCount"><x:expr select="sum(./testsuite[./@package = $quotedPackage]/@time)"/></j:set>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<a href="#${package}">${package}</a>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${testCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${failureCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${errorCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${timeCount}" pattern="0.00"/>
|
||||
</td>
|
||||
</tr>
|
||||
</j:forEach>
|
||||
</table>
|
||||
<p>
|
||||
Note: package statistics are not computed recursively, they only
|
||||
sum up all of its testsuites numbers.
|
||||
</p>
|
||||
|
||||
<j:forEach var="testsuite" items="${testsuites}">
|
||||
<j:set var="package" value="${testsuite.attribute('package').value}"/>
|
||||
<x:set var="quotedPackage" select='"${package}"'/>
|
||||
|
||||
<a name="${package}"></a>
|
||||
<subsection name="${package}">
|
||||
<table>
|
||||
<!--
|
||||
<junit:testSuiteHeader/>
|
||||
-->
|
||||
<x:forEach var="test" select="/testsuites/testsuite[./@package = $quotedPackage]">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="#${test.attribute('name').value}">${test.attribute('name').value}</a>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${test.attribute('tests').value}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${test.attribute('errors').value}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${test.attribute('failures').value}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${test.attribute('time').value}" pattern="0.000"/>
|
||||
</td>
|
||||
</tr>
|
||||
</x:forEach>
|
||||
</table>
|
||||
</subsection>
|
||||
</j:forEach>
|
||||
</section>
|
||||
|
||||
<section name="Test Cases">
|
||||
<junit:nav/>
|
||||
|
||||
<x:set var="testsuites" select="./testsuite"/>
|
||||
<j:forEach var="testsuite" items="${testsuites}">
|
||||
<a name="${testsuite.attribute('name').value}"></a>
|
||||
<subsection name="${testsuite.attribute('name').value}">
|
||||
<table>
|
||||
<!--
|
||||
<junit:testCaseHeader/>
|
||||
-->
|
||||
|
||||
## test can even not be started at all (failure to load the class)
|
||||
## so report the error directly
|
||||
##
|
||||
|
||||
<x:set var="errors" select="$testsuite/error"/>
|
||||
<j:forEach var="error" items="${errors}">
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<junit:displayFailure current="${error}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</j:forEach>
|
||||
|
||||
|
||||
|
||||
<x:set var="testcases" select="$testsuite/testcase"/>
|
||||
<j:forEach var="testcase" items="${testcases}">
|
||||
<j:set var="failure" value="${testcase.selectSingleNode('failure')}"/>
|
||||
<j:set var="error" value="${testcase.selectSingleNode('error')}"/>
|
||||
<tr>
|
||||
<td>${testcase.attribute("name").value}</td>
|
||||
<j:choose>
|
||||
<j:when test="${failure != null}">
|
||||
<td style="width: 60px; color: red; font-weight: bold">Failure</td>
|
||||
</j:when>
|
||||
<j:when test="${error != null}">
|
||||
<td style="width: 60px; color: red; font-weight: bold">Error</td>
|
||||
</j:when>
|
||||
<j:otherwise>
|
||||
<td style="width: 60px;">Success</td>
|
||||
</j:otherwise>
|
||||
</j:choose>
|
||||
<j:choose>
|
||||
<j:when test="${testcase.attribute('time') != null}">
|
||||
<td width="60px">
|
||||
<doc:formatAsNumber string="${testcase.attribute('time').value}" pattern="0.00"/>
|
||||
</td>
|
||||
</j:when>
|
||||
<j:otherwise>
|
||||
<td width="60px"></td>
|
||||
</j:otherwise>
|
||||
</j:choose>
|
||||
</tr>
|
||||
<j:choose>
|
||||
<j:when test="${failure != null}">
|
||||
<tr>
|
||||
<td colspan="3" style="padding-left: 50px">
|
||||
<junit:displayFailure current="${failure}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</j:when>
|
||||
<j:when test="${error != null}">
|
||||
<tr>
|
||||
<td colspan="3" style="padding-left: 50px">
|
||||
<junit:displayFailure current="${error}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</j:when>
|
||||
</j:choose>
|
||||
</j:forEach>
|
||||
</table>
|
||||
</subsection>
|
||||
</j:forEach>
|
||||
</section>
|
||||
</body>
|
||||
</document>
|
||||
</jsl:template>
|
||||
</jsl:stylesheet>
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<jsl:stylesheet
|
||||
select="$doc"
|
||||
xmlns:j="jelly:core"
|
||||
xmlns:jsl="jelly:jsl"
|
||||
xmlns:x="jelly:xml"
|
||||
xmlns:define="jelly:define"
|
||||
xmlns:util="jelly:util"
|
||||
xmlns:junit="junit"
|
||||
xmlns:doc="doc"
|
||||
trim="false">
|
||||
|
||||
<!-- This needs to be instantiated here to be available in the template matches -->
|
||||
<j:useBean var="mavenTool" class="org.apache.maven.MavenTool"/>
|
||||
<j:useBean var="numbers" class="java.text.DecimalFormat"/>
|
||||
<j:useBean var="htmlescape" class="org.apache.velocity.anakia.Escape"/>
|
||||
<j:useBean var="formatter" class="org.apache.maven.DVSLFormatter"/>
|
||||
<j:useBean var="fileutil" class="org.apache.velocity.texen.util.FileUtil"/>
|
||||
<j:useBean var="pathtool" class="org.apache.maven.DVSLPathTool"/>
|
||||
|
||||
|
||||
<define:taglib uri="junit">
|
||||
<define:tag name="nav">
|
||||
<p>
|
||||
[
|
||||
<a href="#Summary">summary</a>]
|
||||
[
|
||||
<a href="#Package List">package list</a>]
|
||||
[
|
||||
<a href="#Test Cases">test cases</a>]
|
||||
</p>
|
||||
</define:tag>
|
||||
|
||||
<define:tag name="testSuiteHeader">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Tests</th>
|
||||
<th>Errors</th>
|
||||
<th>Failures</th>
|
||||
<th>Time(s)</th>
|
||||
</tr>
|
||||
</define:tag>
|
||||
|
||||
<define:tag name="testCaseHeader">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Status</th>
|
||||
<th>Type</th>
|
||||
<th>Time(s)</th>
|
||||
</tr>
|
||||
</define:tag>
|
||||
|
||||
<define:tag name="displayFailure">
|
||||
<j:choose>
|
||||
<j:when test="${current.attribute('message') != null}">
|
||||
${htmlescape.getText(current.attribute('message').value)}
|
||||
</j:when>
|
||||
<j:otherwise>
|
||||
N/A
|
||||
</j:otherwise>
|
||||
<p/>
|
||||
<code>
|
||||
${htmlescape.getText(current.value())}
|
||||
</code>
|
||||
</j:choose>
|
||||
</define:tag>
|
||||
</define:taglib>
|
||||
|
||||
<jsl:template match="testsuites">
|
||||
<document>
|
||||
|
||||
<properties>
|
||||
<title>JUnit Test Results</title>
|
||||
</properties>
|
||||
|
||||
<body>
|
||||
<section name="Summary">
|
||||
<junit:nav/>
|
||||
<j:set var="testCount"><x:expr select="sum(testsuite/@tests)"/></j:set>
|
||||
<j:set var="errorCount"><x:expr select="sum(testsuite/@errors)"/></j:set>
|
||||
<j:set var="failureCount"><x:expr select="sum(testsuite/@failures)"/></j:set>
|
||||
<j:set var="timeCount"><x:expr select="sum(testsuite/@time)"/></j:set>
|
||||
<j:set var="successRate"><x:expr select="($testCount - ($failureCount + $errorCount)) div $testCount"/></j:set>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Tests</th>
|
||||
<th>Errors</th>
|
||||
<th>Failures</th>
|
||||
<th>Success rate</th>
|
||||
<th>Time(s)</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${testCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${errorCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${failureCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${successRate}" pattern="0.00%"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${timeCount}" pattern="0.00"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
Note:
|
||||
<i>failures</i> are anticipated and checked for with
|
||||
assertions while
|
||||
<i>errors</i> are unanticipated.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section name="Package List">
|
||||
<junit:nav/>
|
||||
<table>
|
||||
<!--
|
||||
<junit:testSuiteHeader/>
|
||||
-->
|
||||
<x:set var="testsuites" select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]"/>
|
||||
<j:forEach var="testsuite" items="${testsuites}">
|
||||
<j:set var="package" value="${testsuite.attribute('package').value}"/>
|
||||
<x:set var="quotedPackage" select='"${package}"'/>
|
||||
<j:set var="testCount"><x:expr select="sum(./testsuite[./@package = $quotedPackage]/@tests)"/></j:set>
|
||||
<j:set var="errorCount"><x:expr select="sum(./testsuite[./@package = $quotedPackage]/@errors)"/></j:set>
|
||||
<j:set var="failureCount"><x:expr select="sum(./testsuite[./@package = $quotedPackage]/@failures)"/></j:set>
|
||||
<j:set var="timeCount"><x:expr select="sum(./testsuite[./@package = $quotedPackage]/@time)"/></j:set>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<a href="#${package}">${package}</a>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${testCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${failureCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${errorCount}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${timeCount}" pattern="0.00"/>
|
||||
</td>
|
||||
</tr>
|
||||
</j:forEach>
|
||||
</table>
|
||||
<p>
|
||||
Note: package statistics are not computed recursively, they only
|
||||
sum up all of its testsuites numbers.
|
||||
</p>
|
||||
|
||||
<j:forEach var="testsuite" items="${testsuites}">
|
||||
<j:set var="package" value="${testsuite.attribute('package').value}"/>
|
||||
<x:set var="quotedPackage" select='"${package}"'/>
|
||||
|
||||
<a name="${package}"></a>
|
||||
<subsection name="${package}">
|
||||
<table>
|
||||
<!--
|
||||
<junit:testSuiteHeader/>
|
||||
-->
|
||||
<x:forEach var="test" select="/testsuites/testsuite[./@package = $quotedPackage]">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="#${test.attribute('name').value}">${test.attribute('name').value}</a>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${test.attribute('tests').value}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${test.attribute('errors').value}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${test.attribute('failures').value}" pattern="0"/>
|
||||
</td>
|
||||
<td>
|
||||
<doc:formatAsNumber string="${test.attribute('time').value}" pattern="0.000"/>
|
||||
</td>
|
||||
</tr>
|
||||
</x:forEach>
|
||||
</table>
|
||||
</subsection>
|
||||
</j:forEach>
|
||||
</section>
|
||||
|
||||
<section name="Test Cases">
|
||||
<junit:nav/>
|
||||
|
||||
<x:set var="testsuites" select="./testsuite"/>
|
||||
<j:forEach var="testsuite" items="${testsuites}">
|
||||
<a name="${testsuite.attribute('name').value}"></a>
|
||||
<subsection name="${testsuite.attribute('name').value}">
|
||||
<table>
|
||||
<!--
|
||||
<junit:testCaseHeader/>
|
||||
-->
|
||||
|
||||
## test can even not be started at all (failure to load the class)
|
||||
## so report the error directly
|
||||
##
|
||||
|
||||
<x:set var="errors" select="$testsuite/error"/>
|
||||
<j:forEach var="error" items="${errors}">
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<junit:displayFailure current="${error}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</j:forEach>
|
||||
|
||||
|
||||
|
||||
<x:set var="testcases" select="$testsuite/testcase"/>
|
||||
<j:forEach var="testcase" items="${testcases}">
|
||||
<j:set var="failure" value="${testcase.selectSingleNode('failure')}"/>
|
||||
<j:set var="error" value="${testcase.selectSingleNode('error')}"/>
|
||||
<tr>
|
||||
<td>${testcase.attribute("name").value}</td>
|
||||
<j:choose>
|
||||
<j:when test="${failure != null}">
|
||||
<td style="width: 60px; color: red; font-weight: bold">Failure</td>
|
||||
</j:when>
|
||||
<j:when test="${error != null}">
|
||||
<td style="width: 60px; color: red; font-weight: bold">Error</td>
|
||||
</j:when>
|
||||
<j:otherwise>
|
||||
<td style="width: 60px;">Success</td>
|
||||
</j:otherwise>
|
||||
</j:choose>
|
||||
<j:choose>
|
||||
<j:when test="${testcase.attribute('time') != null}">
|
||||
<td width="60px">
|
||||
<doc:formatAsNumber string="${testcase.attribute('time').value}" pattern="0.00"/>
|
||||
</td>
|
||||
</j:when>
|
||||
<j:otherwise>
|
||||
<td width="60px"></td>
|
||||
</j:otherwise>
|
||||
</j:choose>
|
||||
</tr>
|
||||
<j:choose>
|
||||
<j:when test="${failure != null}">
|
||||
<tr>
|
||||
<td colspan="3" style="padding-left: 50px">
|
||||
<junit:displayFailure current="${failure}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</j:when>
|
||||
<j:when test="${error != null}">
|
||||
<tr>
|
||||
<td colspan="3" style="padding-left: 50px">
|
||||
<junit:displayFailure current="${error}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</j:when>
|
||||
</j:choose>
|
||||
</j:forEach>
|
||||
</table>
|
||||
</subsection>
|
||||
</j:forEach>
|
||||
</section>
|
||||
</body>
|
||||
</document>
|
||||
</jsl:template>
|
||||
</jsl:stylesheet>
|
||||
@ -14,6 +14,21 @@
|
||||
a <code>cactus.home.[container name]</code> property.
|
||||
</description>
|
||||
</goal>
|
||||
<goal>
|
||||
<name>cactus:report</name>
|
||||
<description>
|
||||
Generate an HTML report for the Cactus tests that been run. In order
|
||||
to get this report as part of the generated web site, add the
|
||||
following to your <code>project.xml</code>:
|
||||
<source><![CDATA[
|
||||
<reports>
|
||||
[...]
|
||||
<report>maven-cactus-plugin</report>
|
||||
[...]
|
||||
</reports>
|
||||
]]></source>
|
||||
</description>
|
||||
</goal>
|
||||
</goals>
|
||||
</body>
|
||||
</document>
|
||||
@ -52,7 +52,7 @@
|
||||
<td>
|
||||
<p>
|
||||
Location where the plugins puts temporary build-generated
|
||||
files. Default value is <code>${maven.build.dir}</code>.
|
||||
files. Default value is <code>${maven.build.dir}/cactus</code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@ -87,6 +87,28 @@
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cactus.junit.usefile</td>
|
||||
<td>Yes</td>
|
||||
<td>
|
||||
<p>
|
||||
Decides whether the test result will be printed to the console or
|
||||
not. Default value is <code>false</code>, meaning errors will be
|
||||
displayed on the console.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cactus.reports.dir</td>
|
||||
<td>Yes</td>
|
||||
<td>
|
||||
<p>
|
||||
Location of junit test reports for the Cactus tests.
|
||||
Default value is
|
||||
<code>${cactus.target.dir}/test-cactus-reports</code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
||||
</body>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user