<html>
<head>
<title>JUnitReport</title>
</head>

<body>

<h2><a name="junitreport">JUnitReport</a></h2>
Merge the individual XML files generated by the JUnit task and eventually apply
a stylesheet on the resulting merged document to provide a browsable report of
the testcases results.
<h3>Requirements</h3>
<p>The task will run with either <a href="http://xml.apache.org/xalan-j/">Xalan 2.x</a>
or <a href="http://xml.apache.org/dist/xalan-j/old/xalan-j_1_2_2.zip">Xalan 1.2.2</a>.
<p>
Note:<i>For a framed format Xalan 1.2.2 will need Xerces(xerces.jar) as well as BSF(bsf.jar)
that can be found in the distribution archive. Xerces will need to be before any other
parser (such as the shipped crimson). It is *highly* recommended to use Xalan2 instead
because Xalan1 is no more supported.
</i>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
  <tr>
    <td width="12%" valign="top"><b>Attribute</b></td>
    <td width="78%" valign="top"><b>Description</b></td>
    <td width="10%" valign="top"><b>Required</b></td>
  </tr>
  <tr>
    <td valign="top">tofile</td>
    <td valign="top">The name of the XML file that will aggregate all individual
      XML testsuite previously generated by the JUnit task.</td>
    <td align="center" valign="top">No. Default to TESTS-TestSuites.xml</td>
  </tr>
  <tr>
    <td valign="top">todir</td>
    <td valign="top">The directory where should be written the file resulting
      from the individual XML testsuite aggregation.</td>
    <td align="center" valign="top">No. Default to current directory</td>
  </tr>
</table>
<h3><a name="nested">Nested Elements</a></h3>
<h4>fileset</h4>
<p><code>junitreport</code> collects individual xml files generated by the JUnit
task using the nested <a href="index.html#fileset"><code>&lt;FileSet&gt;</code></a>
element.</p>
<h4>report</h4>
<p>Generate a browsable report based on the document created by the merge.</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
  <tr>
    <td width="12%" valign="top"><b>Attribute</b></td>
    <td width="78%" valign="top"><b>Description</b></td>
    <td width="10%" valign="top"><b>Required</b></td>
  </tr>
  <tr>
    <td valign="top">format</td>
    <td valign="top">The format of the generated report. Must be &quot;noframes&quot;
      or &quot;frames&quot;.</td>
    <td align="center" valign="top">No, default to &quot;frames&quot;</td>
  </tr>
  <tr>
    <td valign="top">styledir</td>
    <td valign="top">The directory where the stylesheets are defined. They must
      be conforming to the following conventions:
      <ul>
        <li>frames format: the stylesheet must be named <i>junit-frames.xsl</i>.</li>
        <li>noframes format: the stylesheet must be named <i>junit-noframes.xsl</i>.</li>
      </ul>
    </td>
    <td align="center" valign="top">No. Default to embedded stylesheets.</td>
  </tr>
  <tr>
    <td valign="top">todir</td>
    <td valign="top">The directory where the files resulting from the
      transformation should be written to.</td>
    <td align="center" valign="top">No. Default to current directory</td>
  </tr>
</table>
<h3>Example of report</h3>
<blockquote>
  <pre>&lt;junitreport todir=&quot;./reports&quot;&gt;
  &lt;fileset dir=&quot;./reports&quot;&gt;
    &lt;include name=&quot;TEST-*.xml&quot;/&gt;
  &lt;/fileset&gt;
  &lt;report format=&quot;frames&quot; todir=&quot;./report/html&quot;/&gt;
&lt;/junitreport&gt;
</pre>
</blockquote>
<p>would generate a <tt>TESTS-TestSuites.xml</tt> file in the directory <tt>reports</tt> and
generate the default framed report in the directory <tt>report/html</tt>.</p>

</body>

</html>
