aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/manual/Tasks/junit.html
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/manual/Tasks/junit.html')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/manual/Tasks/junit.html802
1 files changed, 0 insertions, 802 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/manual/Tasks/junit.html b/framework/src/ant/apache-ant-1.9.6/manual/Tasks/junit.html
deleted file mode 100644
index 76df9ced..00000000
--- a/framework/src/ant/apache-ant-1.9.6/manual/Tasks/junit.html
+++ /dev/null
@@ -1,802 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
-<title>JUnit Task</title>
-</head>
-<body>
-
-<h2><a name="junit">JUnit</a></h2>
-<h3>Description</h3>
-
-<p>This task runs tests from the JUnit testing framework. The latest
-version of the framework can be found at
-<a href="http://www.junit.org">http://www.junit.org</a>.
-This task has been tested with JUnit 3.0 up to JUnit 3.8.2; it won't
-work with versions prior to JUnit 3.0. It also works with JUnit 4.0, including
-"pure" JUnit 4 tests using only annotations and no <code>JUnit4TestAdapter</code>.</p>
-<p><strong>Note:</strong> This task depends on external libraries not included
-in the Apache Ant distribution. See <a href="../install.html#librarydependencies">
-Library Dependencies</a> for more information.
-</p>
-<p>
-<strong>Note</strong>:
-You must have <code>junit.jar</code> available.
-You can do one of:
-</p>
-<ol>
-<li>
-Put both <code>junit.jar</code> and <code>ant-junit.jar</code> in
-<code>ANT_HOME/lib</code>.
-</li>
-<li>
-Do not put either in <code>ANT_HOME/lib</code>, and instead
-include their locations in your <code>CLASSPATH</code> environment variable.
-</li>
-<li>
-Add both JARs to your classpath using <code>-lib</code>.
-</li>
-<li>
-Specify the locations of both JARs using
-a <code>&lt;classpath&gt;</code> element in a <code>&lt;taskdef&gt;</code> in the build file.
-</li>
-<li>
-Leave <code>ant-junit.jar</code> in its default location in <code>ANT_HOME/lib</code>
-but include <code>junit.jar</code> in the <code>&lt;classpath&gt;</code> passed
-to <code>&lt;junit&gt;</code>. <em>(since Ant 1.7)</em>
-</li>
-</ol>
-<p>
-See <a href="http://ant.apache.org/faq.html#delegating-classloader" target="_top">the
-FAQ</a> for details.
-</p>
-
-<p>Tests are defined by nested <code>test</code> or
-<code>batchtest</code> tags (see <a href="#nested">nested
-elements</a>).</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">printsummary</td>
- <td valign="top">Print one-line statistics for each testcase. Can
- take the values <code>on</code>,
- <code>off</code>, and
- <code>withOutAndErr</code>.
- <code>withOutAndErr</code> is the same
- as <code>on</code> but also includes the output of the test
- as written to <code>System.out</code> and <code>System.err</code>.</td>
- <td align="center" valign="top">No; default is <code>off</code>.</td>
- </tr>
- <tr>
- <td valign="top">fork</td>
- <td valign="top">Run the tests in a separate VM.</td>
- <td align="center" valign="top">No; default is <code>off</code>.</td>
- </tr>
- <tr>
- <td valign="top">forkmode</td>
- <td valign="top">Controls how many Java Virtual Machines get
- created if you want to fork some tests. Possible values are
- &quot;perTest&quot; (the default), &quot;perBatch&quot; and
- &quot;once&quot;. &quot;once&quot; creates only a single Java VM
- for all tests while &quot;perTest&quot; creates a new VM for each
- TestCase class. &quot;perBatch&quot; creates a VM for each nested
- <code>&lt;batchtest&gt;</code> and one collecting all nested
- <code>&lt;test&gt;</code>s. Note that only tests with the same
- settings of <code>filtertrace</code>, <code>haltonerror</code>,
- <code>haltonfailure</code>, <code>errorproperty</code> and
- <code>failureproperty</code> can share a VM, so even if you set
- <code>forkmode</code> to &quot;once&quot;, Ant may have to create
- more than a single Java VM. This attribute is ignored for tests
- that don't get forked into a new Java VM. <em>since Ant 1.6.2</em></td>
- <td align="center" valign="top">No; default is <code>perTest</code>.</td>
- </tr>
- <tr>
- <td valign="top">haltonerror</td>
- <td valign="top">Stop the build process if an error occurs during the test
- run.</td>
- <td align="center" valign="top">No; default is <code>off</code>.</td>
- </tr>
-<tr>
- <td valign="top">errorproperty</td>
- <td valign="top">The name of a property to set in the event of an error.</td>
- <td align="center" valign="top">No</td>
-</tr>
- <tr>
- <td valign="top">haltonfailure</td>
- <td valign="top">Stop the build process if a test fails (errors are
- considered failures as well).</td>
- <td align="center" valign="top">No; default is <code>off</code>.</td>
- </tr>
-<tr>
- <td valign="top">failureproperty</td>
- <td valign="top">The name of a property to set in the event of a failure
- (errors are considered failures as well).</td>
- <td align="center" valign="top">No.</td>
-</tr>
- <tr>
- <td valign="top">filtertrace</td>
- <td valign="top">Filter out Junit and Ant stack frames from error and failure stack traces.</td>
- <td align="center" valign="top">No; default is <code>on</code>.</td>
- </tr>
- <tr>
- <td valign="top">timeout</td>
- <td valign="top">Cancel the individual tests if they don't finish
- in the given time (measured in milliseconds). Ignored if
- <code>fork</code> is disabled. When running multiple tests
- inside the same Java VM (see forkMode), timeout applies to the
- time that all tests use together, not to an individual
- test.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">maxmemory</td>
- <td valign="top">Maximum amount of memory to allocate to the forked VM.
- Ignored if <code>fork</code> is disabled. <strong>Note</strong>:
- If you get <code>java.lang.OutOfMemoryError: Java heap space</code>
- in some of your tests then you need to raise the size like
- <code>maxmemory="128m"</code></td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">jvm</td>
- <td valign="top">The command used to invoke the Java Virtual Machine,
- default is 'java'. The command is resolved by
- <code>java.lang.Runtime.exec()</code>.
- Ignored if <code>fork</code> is disabled.</td>
- <td align="center" valign="top">No; default is <code>java</code>.</td>
- </tr>
- <tr>
- <td valign="top">dir</td>
- <td valign="top">The directory in which to invoke the VM. Ignored if
- <code>fork</code> is disabled.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">newenvironment</td>
- <td valign="top">Do not propagate the old environment when new
- environment variables are specified. Ignored if <code>fork</code> is
- disabled.</td>
- <td align="center" valign="top">No; default is <code>false</code>.</td>
- </tr>
- <tr>
- <td valign="top">includeantruntime</td>
- <td valign="top">Implicitly add the Ant classes required to run
- the tests and JUnit to the classpath in forked mode.
- </td>
- <td align="center" valign="top">No; default is <code>true</code>.</td>
- </tr>
- <tr>
- <td valign="top">showoutput</td>
- <td valign="top">Send any output generated by tests to Ant's
- logging system as well as to the formatters. By default only the
- formatters receive the output.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">outputtoformatters</td>
- <td valign="top">
- <em>Since Ant 1.7.0.</em><br/>
- Send any output generated by tests to the test formatters.
- This is "true" by default.
- </td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">tempdir</td>
- <td valign="top">Where Ant should place temporary files.
- <em>Since Ant 1.6</em>.</td>
- <td align="center" valign="top">No; default is the project's base
- directory.</td>
- </tr>
- <tr>
- <td valign="top">reloading</td>
- <td valign="top">Whether or not a new classloader should be instantiated for each test case.<br>
- Ignore if <code>fork</code> is set to true.
- <em>Since Ant 1.6</em>.</td>
- <td align="center" valign="top">No; default is <code>true</code>.</td>
- </tr>
- <tr>
- <td valign="top">clonevm</td>
- <td valign="top">If set to true true, then all system properties
- and the bootclasspath of the forked Java Virtual Machine will be
- the same as those of the Java VM running Ant. Default is
- &quot;false&quot; (ignored if fork is disabled).
- <em>since Ant 1.7</em></td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">logfailedtests</td>
- <td valign="top">When Ant executes multiple tests and doesn't stop
- on errors or failures it will log a "FAILED" message for each
- failing test to its logging system. If you set this option to
- false, the message will not be logged and you have to rely on the
- formatter output to find the failing tests.
- <em>since Ant 1.8.0</em></td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">enableTestListenerEvents</td>
- <td valign="top">Whether Ant should send fine grained information
- about the running tests to Ant's logging system at the verbose
- level. Such events may be used by custom test listeners to show
- the progress of tests.<br/>
- Defaults to <code>false</code>.<br/>
- Can be overridden by a <a href="#enabletestlistenerevents">magic
- property</a>.<br/>
- <em>since Ant 1.8.2</em> - <strong>Ant 1.7.0 to 1.8.1 behave as
- if this attribute was true by default.</strong></td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">threads</td>
- <td valign="top">a number of threads to run the tests in.<br/>
- When this attribute is specified the tests will be split arbitrarily among the threads.<br/>
- requires that the tests be forked with the <code>perTest</code>
- option to be operative.<br/>
- <em>since Ant 1.9.4</em></td>
- <td align="center" valign="top">No</td>
- </tr>
-</table>
-
-<p>By using the <code>errorproperty</code> and <code>failureproperty</code>
-attributes, it is possible to
-perform setup work (such as starting an external server), execute the test,
-clean up, and still fail the build in the event of a failure.</p>
-
-<p>The <code>filtertrace</code> attribute condenses error and failure
-stack traces before reporting them.
-It works with both the plain and XML formatters. It filters out any lines
-that begin with the following string patterns:<pre>
- "junit.framework.TestCase"
- "junit.framework.TestResult"
- "junit.framework.TestSuite"
- "junit.framework.Assert."
- "junit.swingui.TestRunner"
- "junit.awtui.TestRunner"
- "junit.textui.TestRunner"
- "java.lang.reflect.Method.invoke("
- "sun.reflect."
- "org.apache.tools.ant."
- "org.junit."
- "junit.framework.JUnit4TestAdapter"
- " more"</pre>
-
-<h3><a name="nested">Nested Elements</a></h3>
-
-<p>The <code>&lt;junit&gt;</code> task
-supports a nested <code>&lt;classpath&gt;</code>
-element that represents a <a href="../using.html#path">PATH like
-structure</a>.</p>
-
-<p>As of Ant 1.7, this classpath may be used to refer to <code>junit.jar</code>
-as well as your tests and the tested code.
-
-<h4>jvmarg</h4>
-
-<p>If <code>fork</code> is enabled, additional parameters may be passed to
-the new VM via nested <code>&lt;jvmarg&gt;</code> elements. For example:</p>
-
-<pre>
-&lt;junit fork=&quot;yes&quot;&gt;
- &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
- ...
-&lt;/junit&gt;
-</pre>
-
-<p>would run the test in a VM without JIT.</p>
-
-<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
-href="../using.html#arg">Command-line Arguments</a>.</p>
-
-<h4>sysproperty</h4>
-
-<p>Use nested <code>&lt;sysproperty&gt;</code> elements to specify system
-properties required by the class. These properties will be made available
-to the VM during the execution of the test (either ANT's VM or the forked VM,
-if <code>fork</code> is enabled).
-The attributes for this element are the same as for <a href="../Tasks/exec.html#env">environment variables</a>.</p>
-
-<pre>
-&lt;junit fork=&quot;no&quot;&gt;
- &lt;sysproperty key=&quot;basedir&quot; value=&quot;${basedir}&quot;/&gt;
- ...
-&lt;/junit&gt;
-</pre>
-
-<p>would run the test in ANT's VM and make the <code>basedir</code> property
-available to the test.</p>
-
-<h4>syspropertyset</h4>
-
-<p>You can specify a set of properties to be used as system properties
-with <a href="../Types/propertyset.html">syspropertyset</a>s.</p>
-
-<p><em>since Ant 1.6</em>.</p>
-
-<h4>env</h4>
-
-<p>It is possible to specify environment variables to pass to the
-forked VM via nested <code>&lt;env&gt;</code> elements. For a description
-of the <code>&lt;env&gt;</code> element's attributes, see the
-description in the <a href="../Tasks/exec.html#env">exec</a> task.</p>
-
-<p>Settings will be ignored if <code>fork</code> is disabled.</p>
-
-<h4>bootclasspath</h4>
-
-<p>The location of bootstrap class files can be specified using this
-<a href="../using.html#path">PATH like structure</a> - will be ignored
-if <i>fork</i> is not <code>true</code> or the target VM doesn't
-support it (i.e. Java 1.1).</p>
-
-<p><em>since Ant 1.6</em>.</p>
-
-<h4>permissions</h4>
-<p>Security permissions can be revoked and granted during the execution of the
-class via a nested <i>permissions</i> element. For more information please
-see <a href="../Types/permissions.html">permissions</a></p>
-
-<p>Settings will be ignored if fork is enabled.</p>
-
-<p><em>since Ant 1.6</em>.</p>
-
-<h4>assertions</h4>
-
-<p>You can control enablement of Java 1.4 assertions with an
-<a href="../Types/assertions.html"><tt>&lt;assertions&gt;</tt></a>
-subelement.</p>
-
-<p>Assertion statements are currently ignored in non-forked mode.</p>
-
-<p><em>since Ant 1.6.</em></p>
-
-<h4>formatter</h4>
-
-<p>The results of the tests can be printed in different
-formats. Output will always be sent to a file, unless you set the
-<code>usefile</code> attribute to <code>false</code>.
-The name of the file is determined by the
-name of the test and can be set by the <code>outfile</code> attribute
-of <code>&lt;test&gt;</code>.</p>
-
-<p>There are four predefined formatters - one prints the test results
-in XML format, the other emits plain text. The formatter named
-<code>brief</code> will only print detailed information for testcases
-that failed, while <code>plain</code> gives a little statistics line
-for all test cases. Custom formatters that need to implement
-<code>org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter</code>
-can be specified.</p>
-
-<p>If you use the XML formatter, it may not include the same output
-that your tests have written as some characters are illegal in XML
-documents and will be dropped.</p>
-
-<p>The fourth formatter named <code>failure</code> (since Ant 1.8.0)
-collects all failing <code>testXXX()</code>
-methods and creates a new <code>TestCase</code> which delegates only these
-failing methods. The name and the location can be specified via Java System property or Ant property
-<code>ant.junit.failureCollector</code>. The value has to point to the directory and
-the name of the resulting class (without suffix). It defaults to <i>java-tmp-dir</i>/FailedTests.</p>
-
-<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">type</td>
- <td valign="top">Use a predefined formatter (either
- <code>xml</code>, <code>plain</code>, <code>brief</code> or <code>failure</code>).</td>
- <td align="center" rowspan="2">Exactly one of these.</td>
- </tr>
- <tr>
- <td valign="top">classname</td>
- <td valign="top">Name of a custom formatter class.</td>
- </tr>
- <tr>
- <td valign="top">extension</td>
- <td valign="top">Extension to append to the output filename.</td>
- <td align="center">Yes, if <code>classname</code> has been used.</td>
- </tr>
- <tr>
- <td valign="top">usefile</td>
- <td valign="top">Boolean that determines whether output should be
- sent to a file.</td>
- <td align="center">No; default is <code>true</code>.</td>
- </tr>
- <tr>
- <td valign="top">if</td>
- <td valign="top">Only use formatter <a href="../properties.html#if+unless">if the named property is set</a>.</td>
- <td align="center">No; default is <code>true</code>.</td>
- </tr>
- <tr>
- <td valign="top">unless</td>
- <td valign="top">Only use formatter <a href="../properties.html#if+unless">if the named property is <b>not</b> set</a>.</td>
- <td align="center">No; default is <code>true</code>.</td>
- </tr>
-</table>
-
-<h4>test</h4>
-
-<p>Defines a single test class.</p>
-
-<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">name</td>
- <td valign="top">Name of the test class.</td>
- <td align="center">Yes</td>
- </tr>
- <tr>
- <td valign="top">methods</td>
- <td valign="top">Comma-separated list of names of test case methods to execute.
- <em>Since 1.8.2</em>
- <p>The <code>methods</code> attribute can be useful in the following scenarios:</p>
- <ul>
- <li>A test method has failed and you want to re-run the test method
- to test a fix or re-run the test under the Java debugger without
- having to wait for the other (possibly long running) test methods
- to complete.</li>
- <li>One or more test methods are running slower than expected and you
- want to re-run them under a Java profiler (without the overhead
- of running the profiler whilst other test methods are being
- executed).</li>
- </ul>
- <p>If the <code>methods</code> attribute is used but no test method
- is specified, then no test method from the suite will be executed.</p>
- </td>
- <td align="center">No; default is to run all test methods in the suite.</td>
- </tr>
- <tr>
- <td valign="top">fork</td>
- <td valign="top">Run the tests in a separate VM.
- Overrides value set in <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">haltonerror</td>
- <td valign="top">Stop the build process if an error occurs during the test
- run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
- </tr>
-<tr>
- <td valign="top">errorproperty</td>
- <td valign="top">The name of a property to set in the event of an error.
- Overrides value set in <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
-</tr>
- <tr>
- <td valign="top">haltonfailure</td>
- <td valign="top">Stop the build process if a test fails (errors are
- considered failures as well). Overrides value set in
- <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
- </tr>
-<tr>
- <td valign="top">failureproperty</td>
- <td valign="top">The name of a property to set in the event of a failure
- (errors are considered failures as well). Overrides value set in
- <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
-</tr>
- <tr>
- <td valign="top">filtertrace</td>
- <td valign="top">Filter out Junit and Ant stack frames from error and failure stack
- traces. Overrides value set in <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No; default is <code>on</code>.</td>
- </tr>
- <tr>
- <td valign="top">todir</td>
- <td valign="top">Directory to write the reports to.</td>
- <td align="center" valign="top">No; default is the current directory.</td>
- </tr>
- <tr>
- <td valign="top">outfile</td>
- <td valign="top">Base name of the test result. The full filename is
- determined by this attribute and the extension of
- <code>formatter</code>.</td>
- <td align="center" valign="top">No; default is
- <code>TEST-</code><em>name</em>, where <em>name</em> is the name of
- the test specified in the <code>name</code> attribute.</td>
- </tr>
- <tr>
- <td valign="top">if</td>
- <td valign="top">Only run test <a href="../properties.html#if+unless">if the named property is set</a>.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">unless</td>
- <td valign="top">Only run test <a href="../properties.html#if+unless">if the named property is <b>not</b> set</a>.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">skipNonTests</td>
- <td valign="top">Do not pass any classes that do not contain JUnit tests to the test runner.
- This prevents non tests from appearing as test errors in test results.<br />
- Tests are identified by looking for the <code>@Test</code> annotation on any methods in concrete classes
- that don't extend <code>junit.framework.TestCase</code>, or for public/protected methods with
- names starting with 'test' in concrete classes that extend <code>junit.framework.TestCase</code>.
- Classes marked with the JUnit4 <code>org.junit.runner.RunWith</code> or
- <code>org.junit.runner.Suite.SuiteClasses</code> annotations are also passed to JUnit for execution,
- as is any class with a public/protected no-argument <code>suite</code> method.</td>
- <td align="center" valign="top">No. Default is false.</td>
- </tr>
-</table>
-
-<p>Tests can define their own formatters via nested
-<code>&lt;formatter&gt;</code> elements.</p>
-
-<h4>batchtest</h4>
-
-<p>Define a number of tests based on pattern matching.</p>
-
-<p><code>batchtest</code> collects the included <a href="../Types/resources.html">resources</a> from any number
-of nested <a
-href="../Types/resources.html#collection">Resource Collection</a>s. It then
-generates a test class name for each resource that ends in
-<code>.java</code> or <code>.class</code>.</p>
-
-<p>Any type of Resource Collection is supported as a nested element,
-prior to Ant 1.7 only <code>&lt;fileset&gt;</code> has been
-supported.</p>
-
-<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">fork</td>
- <td valign="top">Run the tests in a separate VM.
- Overrides value set in <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">haltonerror</td>
- <td valign="top">Stop the build process if an error occurs during the test
- run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
- </tr>
-<tr>
- <td valign="top">errorproperty</td>
- <td valign="top">The name of a property to set in the event of an error.
- Overrides value set in <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
-</tr>
- <tr>
- <td valign="top">haltonfailure</td>
- <td valign="top">Stop the build process if a test fails (errors are
- considered failures as well). Overrides value set in
- <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No</td>
- </tr>
-<tr>
- <td valign="top">failureproperty</td>
- <td valign="top">The name of a property to set in the event of a failure
- (errors are considered failures as well). Overrides value set in
- <code>&lt;junit&gt;</code></td>
- <td align="center" valign="top">No</td>
-</tr>
- <tr>
- <td valign="top">filtertrace</td>
- <td valign="top">Filter out Junit and Ant stack frames from error and failure stack
- traces. Overrides value set in <code>&lt;junit&gt;</code>.</td>
- <td align="center" valign="top">No; default is <code>on</code>.</td>
- </tr>
- <tr>
- <td valign="top">todir</td>
- <td valign="top">Directory to write the reports to.</td>
- <td align="center" valign="top">No; default is the current directory.</td>
- </tr>
- <tr>
- <td valign="top">if</td>
- <td valign="top">Only run tests <a href="../properties.html#if+unless">if the named property is set</a>.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">unless</td>
- <td valign="top">Only run tests <a href="../properties.html#if+unless">if the named property is <strong>not</strong> set</a>.</td>
- <td align="center" valign="top">No</td>
- </tr>
- <tr>
- <td valign="top">skipNonTests</td>
- <td valign="top">Do not pass any classes that do not contain JUnit tests to the test runner.
- This prevents non tests from appearing as test errors in test results.<br />
- Tests are identified by looking for the <code>@Test</code> annotation on any methods in concrete classes
- that don't extend <code>junit.framework.TestCase</code>, or for public/protected methods with
- names starting with 'test' in concrete classes that extend <code>junit.framework.TestCase</code>.
- Classes marked with the JUnit4 <code>org.junit.runner.RunWith</code> or
- <code>org.junit.runner.Suite.SuiteClasses</code> annotations are also passed to JUnit for execution,
- as is any class with a public/protected no-argument <code>suite</code> method.</td>
- <td align="center" valign="top">No. Default is false.</td>
- </tr>
-</table>
-
-<p>Batchtests can define their own formatters via nested
-<code>&lt;formatter&gt;</code> elements.</p>
-
-<h3>Forked tests and <code>tearDown</code></h3>
-
-<p>If a forked test runs into a timeout, Ant will terminate the Java
- VM process it has created, which probably means the
- test's <code>tearDown</code> method will never be called. The same
- is true if the forked VM crashes for some other reason.</p>
-
-<p>Starting with Ant 1.8.0, a special formatter is distributed with
- Ant that tries to load the testcase that was in the forked VM and
- invoke that class' <code>tearDown</code> method. This formatter has
- the following limitations:</p>
-
-<ul>
- <li>It runs in the same Java VM as Ant itself, this is a different
- Java VM than the one that was executing the test and it may see a
- different classloader (and thus may be unable to load the test
- class).</li>
- <li>It cannot determine which test was run when the timeout/crash
- occurred if the forked VM was running multiple test. I.e. the
- formatter cannot work with any <code>forkMode</code> other
- than <code>perTest</code> and it won't do anything if the test
- class contains a <code>suite()</code> method.</li>
-</ul>
-
-<p>If the formatter recognizes an incompatible <code>forkMode</code>
- or a <code>suite</code> method or fails to load the test class it
- will silently do nothing.</p>
-
-<p>The formatter doesn't have any effect on tests that were not
- forked or didn't cause timeouts or VM crashes.</p>
-
-<p>To enable the formatter, add a <code>formatter</code> like</p>
-
-<pre>
-&lt;formatter classname="org.apache.tools.ant.taskdefs.optional.junit.TearDownOnVmCrash"
- usefile="false"/&gt;
-</pre>
-
-<p>to your <code>junit</code> task.</p>
-
-<h3><a name="enabletestlistenerevents"><code>ant.junit.enabletestlistenerevents</code></a>
- magic property</h3>
-
-<p><em>Since Ant 1.8.2</em> the <code>enableTestListenerEvents</code>
- attribute of the task controls whether fine grained logging messages
- will be sent to the task's verbose log. In addition to this
- attribute Ant will consult the
- property <code>ant.junit.enabletestlistenerevents</code> and the
- value of the property overrides the setting of the attribute.</p>
-
-<p>This property exists so that containers running Ant that depend on
- the additional logging events can ensure they will be generated even
- if the build file disables them.</p>
-
-<h3>Examples</h3>
-
-<pre>
-&lt;junit&gt;
- &lt;test name="my.test.TestCase"/&gt;
-&lt;/junit&gt;
-</pre>
-
-<p>Runs the test defined in <code>my.test.TestCase</code> in the same
-VM. No output will be generated unless the test fails.</p>
-
-<pre>
-&lt;junit printsummary="yes" fork="yes" haltonfailure="yes"&gt;
- &lt;formatter type="plain"/&gt;
- &lt;test name="my.test.TestCase"/&gt;
-&lt;/junit&gt;
-</pre>
-
-<p>Runs the test defined in <code>my.test.TestCase</code> in a
-separate VM. At the end of the test, a one-line summary will be
-printed. A detailed report of the test can be found in
-<code>TEST-my.test.TestCase.txt</code>. The build process will be
-stopped if the test fails.</p>
-
-<pre>
-&lt;junit printsummary="yes" haltonfailure="yes"&gt;
- &lt;classpath&gt;
- &lt;pathelement location="${build.tests}"/&gt;
- &lt;pathelement path="${java.class.path}"/&gt;
- &lt;/classpath&gt;
-
- &lt;formatter type="plain"/&gt;
-
- &lt;test name="my.test.TestCase" haltonfailure="no" outfile="result"&gt;
- &lt;formatter type="xml"/&gt;
- &lt;/test&gt;
-
- &lt;batchtest fork="yes" todir="${reports.tests}"&gt;
- &lt;fileset dir="${src.tests}"&gt;
- &lt;include name="**/*Test*.java"/&gt;
- &lt;exclude name="**/AllTests.java"/&gt;
- &lt;/fileset&gt;
- &lt;/batchtest&gt;
-&lt;/junit&gt;
-</pre>
-
-<p>Runs <code>my.test.TestCase</code> in the same VM, ignoring the
-given CLASSPATH; only a warning is printed if this test fails. In
-addition to the plain text test results, for this test a XML result
-will be output to <code>result.xml</code>.
-Then, for each matching file in the directory defined for
-<code>${src.tests}</code> a
-test is run in a separate VM. If a test fails, the build process is
-aborted. Results are collected in files named
-<code>TEST-</code><em>name</em><code>.txt</code> and written to
-<code>${reports.tests}</code>.</p>
-
-<pre>
-&lt;target name=&quot;test&quot;&gt;
- &lt;property name=&quot;collector.dir&quot; value=&quot;${build.dir}/failingTests&quot;/&gt;
- &lt;property name=&quot;collector.class&quot; value=&quot;FailedTests&quot;/&gt;
- &lt;!-- Delete 'old' collector classes --&gt;
- &lt;delete&gt;
- &lt;fileset dir=&quot;${collector.dir}&quot; includes=&quot;${collector.class}*.class&quot;/&gt;
- &lt;/delete&gt;
- &lt;!-- compile the FailedTests class if present --&gt;
- &lt;javac srcdir=&quot;${collector.dir}&quot; destdir=&quot;${collector.dir}&quot;/&gt;
- &lt;available file=&quot;${collector.dir}/${collector.class}.class&quot; property=&quot;hasFailingTests&quot;/&gt;
- &lt;junit haltonerror=&quot;false&quot; haltonfailure=&quot;false&quot;&gt;
- &lt;sysproperty key=&quot;ant.junit.failureCollector&quot; value=&quot;${collector.dir}/${collector.class}&quot;/&gt;
- &lt;classpath&gt;
- &lt;pathelement location=&quot;${collector.dir}&quot;/&gt;
- &lt;/classpath&gt;
- &lt;batchtest todir=&quot;${collector.dir}&quot; unless=&quot;hasFailingTests&quot;&gt;
- &lt;fileset dir=&quot;${collector.dir}&quot; includes=&quot;**/*.java&quot; excludes=&quot;**/${collector.class}.*&quot;/&gt;
- &lt;!-- for initial creation of the FailingTests.java --&gt;
- &lt;formatter type=&quot;failure&quot;/&gt;
- &lt;!-- I want to see something ... --&gt;
- &lt;formatter type=&quot;plain&quot; usefile=&quot;false&quot;/&gt;
- &lt;/batchtest&gt;
- &lt;test name=&quot;FailedTests&quot; if=&quot;hasFailingTests&quot;&gt;
- &lt;!-- update the FailingTests.java --&gt;
- &lt;formatter type=&quot;failure&quot;/&gt;
- &lt;!-- again, I want to see something --&gt;
- &lt;formatter type=&quot;plain&quot; usefile=&quot;false&quot;/&gt;
- &lt;/test&gt;
- &lt;/junit&gt;
-&lt;/target&gt;
-</pre>
-<p>On the first run all tests are collected via the <code>&lt;batchtest/&gt;</code>
-element. Its <code>plain</code> formatter shows the output on the console. The
-<code>failure</code> formatter creates a java source file in
-<code>${build.dir}/failingTests/FailedTests.java</code> which extends
-<code>junit.framework.TestCase</code> and returns from a <code>suite()</code>
-method a test suite for the failing tests. <br/>
-On a second run the collector class exists and instead of the <code>&lt;batchtest/&gt;</code>
-the single <code>&lt;test/&gt;</code> will run. So only the failing test cases are re-run.
-The two nested formatters are for displaying (for the user) and for updating the collector
-class.
-</p>
-
-
-</body>
-</html>