<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- 
/*
 * Copyright 2001-2004 The Apache Software Foundation.
 * 
 * Licensed 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.
 */
 -->

<document>

  <properties>
    <title>Test Properties</title>
    <author email="smor@apache.org">Stéphane MOR</author>
  </properties>

  <body>
    <section name="Test Settings">
      <table>
        <tr><th>Property</th><th>Optional?</th><th>Description</th></tr>
        <tr>
          <td>maven.junit.fork</td>
          <td>Yes</td>
          <td>
            When using Java 1.4, it may be necessary to fork the JUnit
            tests to prevent XML parser issues.  The default value is
            <code>no</code>.
          </td>
        </tr>
        <tr>
          <td>maven.junit.format</td>
          <td>Yes</td>
          <td>
            Specifies the formatter to use for output to the console.
            Defaults to <code>brief</code>
          </td>
        </tr>
        <tr>
          <td>maven.junit.dir</td>
          <td>Yes</td>
          <td>
            The directory to invoke the VM in. (ignored if fork is disabled).
	    The default value is <code>${basedir}</code>.
          </td>
        </tr>
        <tr>
          <td>maven.junit.usefile</td>
          <td>Yes</td>
          <td>
            If this value is set to false, JUnit test run details will appear on
            the console as the tests are executed. If not, they are stored in
            a file in the <code>test-reports</code> directory. The default value
            is <code>true</code>.
          </td>
        </tr>
        <tr>
          <td>maven.junit.printSummary</td>
          <td>Yes</td>
          <td>
            If this value is set to false, JUnit test run details will not 
            include test summary information for a suite. Default value is
            <code>true</code>. This parameter corresponds to the JUnit Ant
            task <code>printSummary</code> attribute.
          </td>
        </tr>
        <tr>
          <td>maven.junit.jvm</td>
          <td>Yes</td>
          <td>
            If this property is set it is used as the JVM for the junit tests
            to run in. This is passed to the Ant junit task in the jvm property.
            If maven.junit.fork is not true, this is ignored.
          </td>
        </tr>
        <tr>
          <td>maven.test.dest</td>
          <td>Yes</td>
          <td>
            Specifies the unit test classes directory.  This is the
            location where the java classes for the test source
            code will be generated to.  The default value is 
            <code>${maven.build.dir}/test-classes</code>.
          </td>
        </tr>
        <tr>
          <td>maven.test.skip</td>
          <td>Yes</td>
          <td>
            Set this to 'true' to bypass unit tests entirely.  Its use
            is <b>NOT RECOMMENDED</b>, but quite convenient on occasion.
          </td>
        </tr>
        <tr>
          <td>maven.test.failure.ignore</td>
          <td>Yes</td>
          <td>
            Set this to any value to ignore a failure during testing.
            Its use is <b>NOT RECOMMENDED</b>, but quite convenient on occasion.
          </td>
        </tr>
        <tr>
          <td>maven.test.source</td>
          <td>Yes</td>
          <td>
            <p>
              Provide source compatibility with a specific release
            </p>
            <p>
              Corresponds to the <code>source</code> attribute for the ant 
              <a href="http://ant.apache.org/manual/CoreTasks/javac.html">javac</a>
              task.
            </p>
          </td>
        </tr>
        <tr>
          <td>maven.iutest.dest</td>
          <td>Yes</td>
          <td>
            Specifies the integration unit test classes directory.  
            This is the location where the java classes for the 
            integration unit test source code will be generated to.  
            The default value is 
            <code>${maven.build.dir}/iutest-classes</code>.
          </td>
        </tr>
        <tr>
          <td>maven.iutest.dir</td>
          <td>Yes</td>
          <td>
            Specifies the integration unit test source directory.
            This property should never be overridden as the value is
            determined directly from the project descriptor.  The
            default value is 
            <code>${maven.integrationUnitTestSourceDirectory}</code>.
          </td>
        </tr>
        <tr>
          <td>maven.out.test.dir</td>
          <td>Yes</td>
          <td>
            Specifies the directory where the integration unit testing
            is run.  The default value is <code>${build.dir}/iutest</code>.
          </td>
        </tr>
        <tr>
          <td>maven.webapp.dir</td>
          <td>Yes</td>
          <td>
            Specifies the directory of the web application used to
            perform integration unit testing.  The default value is
            <code>${iutest.dir}/testapp</code>.
          </td>
        </tr>
        <tr>
          <td>maven.conf.test.dir</td>
          <td>Yes</td>
          <td>
            Specifies the configuration directory used to build the
            web application used for integration unit testing.  The
            default value is <code>${iutest.dir}/cactus</code>.
          </td>
        </tr>
        <tr>
          <td>maven.tomcat.home</td>
          <td>Yes</td>
          <td>
            Specifies your local Tomcat installation directory. 
            The default value is <code>${tdk.home}</code>.  If
            <code>${tdk.home}</code> is not specified in your
            <code>${user.home}/build.properties</code>, you should set
            this property.  This is used for the integration unit
            testing.
          </td>
        </tr>
        <tr>
          <td>maven.test.port</td>
          <td>Yes</td>
          <td>
            Specifies the port that Tomcat will use for integration
            unit testing.  The default value is <code>8192</code>.
          </td>
        </tr>
        <tr>
          <td>maven.junit.jvmargs</td>
          <td>Yes</td>
          <td>
            If fork is enabled, additional parameters may be passed to the new VM.
            You can specify some args separated by a space.
            Sample :
            <source><![CDATA[
maven.junit.jvmargs=-Xmx160m -verbose
            ]]>
            </source>
          </td>
        </tr>
        <tr>
          <td>maven.junit.envvars</td>
          <td>Yes</td>
          <td>
            If fork is enabled, additional environment variables may be passed to the new VM.
            You can specify some variable separated by a space.
            Each variable is describe in sub properties. 
            Sample :
            <source><![CDATA[
maven.junit.envvars=LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/local/lib
            ]]>
            </source>
          </td>
        </tr>
        <tr>
          <td>maven.junit.sysproperties</td>
          <td>Yes</td>
          <td>
            Use this property 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 Maven's VM or the forked VM, if fork is enabled). 
            You can specify system properties separate by space.
            Each properties is describe in sub properties. 
            Sample :
            <source><![CDATA[
maven.junit.sysproperties=prop1 basedir
prop1=your value
basedir=${basedir}
            ]]>
            </source>
          </td>
        </tr>
       <tr>
          <td>maven.test.search.classdir</td>
          <td>Yes</td>
          <td>
            Use this property to specify that JUnit should search the test classes directory
            rather than the source directory. This allows for test cases to be written in other
            languages such as Groovy which generate bytecode that can then be used by this plugin.
            Sample :
            <source><![CDATA[
maven.test.search.classdir=true
            ]]>
            </source>
          </td>
        </tr>
      </table>
    </section>
  </body>
</document>
