| @@ -52,7 +52,7 @@ | |||
| are necessary to run the tests are: | |||
| </p> | |||
| <ul> | |||
| <ul id="junit-platform-libraries"> | |||
| <li> | |||
| <samp>junit-platform-commons.jar</samp> | |||
| </li> | |||
| @@ -62,6 +62,9 @@ | |||
| <li> | |||
| <samp>junit-platform-launcher.jar</samp> | |||
| </li> | |||
| <li> | |||
| <samp>opentest4j.jar</samp> | |||
| </li> | |||
| </ul> | |||
| <p> | |||
| @@ -69,7 +72,7 @@ | |||
| following libraries in the classpath | |||
| </p> | |||
| <p> | |||
| <p id="junit-vintage-engine-libraries"> | |||
| For <q>junit-vintage</q> engine: | |||
| </p> | |||
| @@ -82,7 +85,7 @@ | |||
| </li> | |||
| </ul> | |||
| <p> | |||
| <p id="junit-jupiter-engine-libraries"> | |||
| For <q>junit-jupiter</q> engine: | |||
| </p> | |||
| @@ -93,9 +96,6 @@ | |||
| <li> | |||
| <samp>junit-jupiter-engine.jar</samp> | |||
| </li> | |||
| <li> | |||
| <samp>opentest4j.jar</samp> | |||
| </li> | |||
| </ul> | |||
| <p> | |||
| @@ -108,6 +108,9 @@ | |||
| <li>OR Leave <samp>ant-junitlauncher.jar</samp> in the <samp>ANT_HOME/lib</samp> directory and | |||
| include all other relevant jars in the classpath by passing them as a <kbd>-lib</kbd> | |||
| option, while invoking Ant</li> | |||
| <li>OR Use the nested <code><classpath></code> element to specify the location of the | |||
| test engines. For more details about this approach, please read the | |||
| <a href=#test-engine-in-classpath>using classpath element to include test engines</a> section. | |||
| </ul> | |||
| <p> | |||
| @@ -150,12 +153,81 @@ | |||
| </p> | |||
| <ul> | |||
| <li>Finding the test classes to execute</li> | |||
| <li>Finding test engines that run the tests</li> | |||
| </ul> | |||
| <p> | |||
| If the <code>classpath</code> element isn't configured for the task, then the classpath of Ant | |||
| itself will be used for finding the test classes. | |||
| </p> | |||
| <h5 id="test-engine-in-classpath">Using the classpath element to include test engines</h5> | |||
| <p> | |||
| The <code><classpath></code> can be used to include the test engines that you want to be | |||
| considered for execution of the tests. | |||
| </p> | |||
| <p> | |||
| <strong>NOTE:</strong> An important aspect to remember is that | |||
| whether or not you use this approach, the JUnit 5 platform libraries | |||
| <a href="#junit-platform-libraries">listed earlier in this | |||
| document</a> and the <code>ant-junitlauncher.jar</code>, <i>shouldn't</i> be part of this classpath | |||
| and instead they must be included in Ant runtime's classpath either by placing them | |||
| in <code>ANT_HOME/lib</code> or by passing the <code>-lib</code> option. | |||
| </p> | |||
| <p> | |||
| Below is an example of setting up the classpath to include the Jupiter test engine during the | |||
| execution of the tests. We assume that the JUnit 5 platform libraries and the | |||
| <code>ant-junitlauncher.jar</code> have been setup as explained previously. | |||
| <br/> | |||
| <pre> | |||
| <project> | |||
| <property name="output.dir" value="${basedir}/build"/> | |||
| <property name="src.test.dir" value="${basedir}/src/test"/> | |||
| <property name="build.classes.dir" value="${output.dir}/classes"/> | |||
| <target name="init"> | |||
| <mkdir dir="${output.dir}"/> | |||
| </target> | |||
| <path id="junit.engine.jupiter.classpath"> | |||
| <fileset dir="${basedir}/src/lib/jupiter/"/> | |||
| </path> | |||
| <target name="compile-test" depends="init"> | |||
| <mkdir dir="${build.classes.dir}"/> | |||
| <javac srcdir="${src.test.dir}" | |||
| destdir="${build.classes.dir}"> | |||
| <classpath refid="junit.engine.jupiter.classpath"/> | |||
| </javac> | |||
| </target> | |||
| <target name="test" depends="compile-test"> | |||
| <junitlauncher> | |||
| <classpath refid="junit.engine.jupiter.classpath"/> | |||
| <classpath> | |||
| <pathelement location="${build.classes.dir}"/> | |||
| </classpath> | |||
| <testclasses outputdir="${output.dir}"> | |||
| <fileset dir="${build.classes.dir}"/> | |||
| <listener type="legacy-brief" sendSysOut="true"/> | |||
| <listener type="legacy-xml" sendSysErr="true" sendSysOut="true"/> | |||
| </testclasses> | |||
| </junitlauncher> | |||
| </target> | |||
| </project> | |||
| </pre> | |||
| In the example above, the <code>src/lib/jupiter</code> directory is expected to contain | |||
| the Jupiter test engine related jars (which have been | |||
| <a href="#junit-jupiter-engine-libraries">listed in an earlier section of this | |||
| document</a>). In the <code>test</code> target we use the <code>classpath</code> nested element | |||
| to point to the <code>junit.engine.jupiter.classpath</code> containing those jars. In this | |||
| <code>test</code> target we also use another <code>classpath</code> element to point to | |||
| the location containing our test classes. If required, both these classpath can be combined | |||
| into one. | |||
| </p> | |||
| <h4>listener</h4> | |||
| <p> | |||