<html>
<head>
<title>JUnitReport Task</title>
<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
</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.
<p><strong>Note:</strong> This task depends on external libraries not included in
the Ant distribution.  See <a href="../install.html#librarydependencies">
Library Dependencies</a> for more information.</p>

<h3>Requirements</h3>
<p>The task needs <a href="http://xml.apache.org/xalan-j/">Xalan 2.x</a>;
although
<a href="http://xml.apache.org/dist/xalan-j/old/xalan-j_1_2_2.zip">Xalan 1.2.2</a>
does work, but as Xalan1 is not supported, we do not recommend this.
</p>
<p>
If you do you use Xalan 1.2.2 you will need a compatible (older) version of Xerces.
as well as BSF(bsf.jar). Again, using Xalan 2 is simpler and supported.
</i></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">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="../CoreTypes/fileset.html"><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>

<hr>
<p align="center">Copyright &copy; 2001-2002 Apache Software Foundation. All rights
Reserved.</p>
</body>

</html>
