| <?xml version="1.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 |
| |
| https://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. |
| --> |
| |
| <project name="junitlauncher-test" basedir="."> |
| |
| <property name="output.dir" location="${java.io.tmpdir}"/> |
| <property name="build.classes.dir" value="${build.tests.value}"/> |
| <target name="init"> |
| <mkdir dir="${output.dir}"/> |
| </target> |
| |
| <path id="junit.platform.classpath"> |
| <fileset dir="../../../../../lib/optional" includes="junit-platform*.jar"/> |
| </path> |
| |
| <path id="junit.engine.vintage.classpath"> |
| <fileset dir="../../../../../lib/optional" includes="junit-vintage-engine*.jar"/> |
| <fileset dir="../../../../../lib/optional" includes="junit-*.jar"/> |
| <fileset dir="../../../../../lib/optional" includes="hamcrest*.jar"/> |
| <fileset dir="../../../../../lib/optional" includes="opentest4j*.jar"/> |
| </path> |
| |
| <path id="junit.engine.jupiter.classpath"> |
| <fileset dir="../../../../../lib/optional"> |
| <include name="junit-jupiter*.jar"/> |
| <include name="opentest4j*.jar"/> |
| </fileset> |
| </path> |
| |
| <path id="test.classpath"> |
| <pathelement location="${build.classes.dir}"/> |
| <path refid="junit.engine.vintage.classpath"/> |
| <path refid="junit.engine.jupiter.classpath"/> |
| </path> |
| |
| <target name="test-failure-stops-build" depends="init"> |
| <junitlauncher> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-failure-stops-build.tracker}" |
| if="test-failure-stops-build.tracker"/> |
| |
| <!-- A specific test meant to fail --> |
| <test name="org.example.junitlauncher.vintage.AlwaysFailingJUnit4Test" haltOnFailure="true"/> |
| <!-- classpath to be used for the tests --> |
| <classpath refid="test.classpath"/> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-failure-continues-build" depends="init"> |
| <junitlauncher> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-failure-continues-build.tracker}" |
| if="test-failure-continues-build.tracker"/> |
| |
| <!-- A specific test meant to fail --> |
| <test name="org.example.junitlauncher.vintage.AlwaysFailingJUnit4Test"/> |
| <classpath refid="test.classpath"/> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-success" depends="init"> |
| <junitlauncher> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-success.tracker}" |
| if="test-success.tracker"/> |
| <!-- A specific test meant to pass --> |
| <test name="org.example.junitlauncher.vintage.JUnit4SampleTest"/> |
| <classpath refid="test.classpath"/> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-one-specific-method" depends="init"> |
| <junitlauncher> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-one-specific-method.tracker}" |
| if="test-one-specific-method.tracker"/> |
| |
| <test name="org.example.junitlauncher.vintage.JUnit4SampleTest" methods="testBar" haltonfailure="true"/> |
| <classpath refid="test.classpath"/> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-multiple-specific-methods" depends="init"> |
| <junitlauncher> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-multiple-specific-methods.tracker}" |
| if="test-multiple-specific-methods.tracker"/> |
| |
| <test name="org.example.junitlauncher.vintage.JUnit4SampleTest" methods=" testFoo, testFooBar " |
| haltonfailure="true"/> |
| <classpath refid="test.classpath"/> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-multiple-individual" depends="init"> |
| <junitlauncher> |
| <test name="org.example.junitlauncher.vintage.AlwaysFailingJUnit4Test"> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-multiple-individual-1.tracker}" |
| if="test-multiple-individual-1.tracker"/> |
| </test> |
| <test name="org.example.junitlauncher.vintage.JUnit4SampleTest"> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-multiple-individual-2.tracker}" |
| if="test-multiple-individual-2.tracker"/> |
| </test> |
| <classpath refid="test.classpath"/> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-batch" depends="init"> |
| <property name="junitlauncher.test.tracker.append.file" value="${output.dir}/${test-batch.tracker}"/> |
| <junitlauncher> |
| <classpath refid="test.classpath"/> |
| <testclasses outputdir="${output.dir}"> |
| <listener classname="org.example.junitlauncher.Tracker" |
| if="test-batch.tracker"/> |
| |
| <fileset dir="${build.classes.dir}"> |
| <include name="org/example/**/junitlauncher/**/"/> |
| <exclude name="org/example/**/junitlauncher/**/ForkedTest.class"/> |
| </fileset> |
| <listener type="legacy-brief" sendSysOut="true"/> |
| <listener type="legacy-xml" sendSysErr="true" sendSysOut="true"/> |
| </testclasses> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-basic-fork" depends="init"> |
| <junitlauncher> |
| <classpath refid="test.classpath"/> |
| <test name="org.example.junitlauncher.vintage.ForkedTest" outputdir="${output.dir}"> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-basic-fork.tracker}" |
| if="test-basic-fork.tracker"/> |
| |
| <fork dir="${basedir}"> |
| <sysproperty key="junitlauncher.test.sysprop.one" value="forked"/> |
| </fork> |
| |
| <listener type="legacy-xml" sendSysErr="true" sendSysOut="true"/> |
| </test> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-junit-platform-lib-excluded" depends="init"> |
| <junitlauncher> |
| <classpath refid="junit.engine.jupiter.classpath"/> |
| <classpath> |
| <pathelement location="${build.classes.dir}"/> |
| </classpath> |
| <test name="org.example.junitlauncher.jupiter.JupiterSampleTest" outputdir="${output.dir}"> |
| <!-- expect the test to not be launched due to CNFE on JUnit platform classes --> |
| <fork dir="${basedir}" includeJUnitPlatformLibraries="false"/> |
| </test> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-junit-ant-runtime-lib-excluded" depends="init"> |
| <junitlauncher> |
| <classpath refid="junit.engine.jupiter.classpath"/> |
| <classpath> |
| <pathelement location="${build.classes.dir}"/> |
| </classpath> |
| <test name="org.example.junitlauncher.jupiter.JupiterSampleTest" outputdir="${output.dir}"> |
| <!-- expect the test to not be launched due to CNFE on Ant runtime classes --> |
| <fork dir="${basedir}" includeAntRuntimeLibraries="false"/> |
| </test> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-junit-platform-lib-custom-location" depends="init"> |
| <junitlauncher> |
| <classpath refid="junit.engine.jupiter.classpath"/> |
| <classpath> |
| <pathelement location="${build.classes.dir}"/> |
| </classpath> |
| <!-- we set includeJUnitPlatformLibraries=false on the fork element |
| and then explicitly specify a location of the JUnit platform libraries --> |
| <classpath refid="junit.platform.classpath"/> |
| <test name="org.example.junitlauncher.jupiter.JupiterSampleTest" outputdir="${output.dir}"> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-junit-platform-lib-custom-location.tracker}" |
| if="test-junit-platform-lib-custom-location.tracker"/> |
| <fork dir="${basedir}" includeJUnitPlatformLibraries="false"/> |
| </test> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-ant-runtime-lib-custom-location" depends="init"> |
| <!-- duplicate the Ant classes into a jar --> |
| <jar destfile="${output.dir}/ant-runtime-duplicated.jar" basedir="${ant.runtime.classes.original.path}"/> |
| |
| <property name="junitlauncher.test.tracker.append.file" value="${output.dir}/${test-ant-runtime-lib-custom-location.tracker}"/> |
| <junitlauncher> |
| <classpath> |
| <path refid="junit.engine.jupiter.classpath"/> |
| <path refid="junit.engine.vintage.classpath"/> |
| <pathelement location="${build.classes.dir}"/> |
| <!-- our duplicated Ant runtime classes jar, since we |
| exclude the original Ant runtime classes on the fork element |
| by setting includeAntRuntimeLibraries=false --> |
| <pathelement location="${output.dir}/ant-runtime-duplicated.jar"/> |
| </classpath> |
| <testclasses outputdir="${output.dir}"> |
| <fileset dir="${build.classes.dir}"> |
| <include name="org/example/**/junitlauncher/**/"/> |
| </fileset> |
| <listener classname="org.example.junitlauncher.Tracker" |
| if="test-ant-runtime-lib-custom-location.tracker"/> |
| <fork dir="${basedir}" includeAntRuntimeLibraries="false"> |
| <sysproperty key="junitlauncher.test.sysprop.one" value="forked"/> |
| </fork> |
| </testclasses> |
| </junitlauncher> |
| </target> |
| |
| |
| <target name="test-ant-and-junit-platform-lib-custom-location" depends="init"> |
| <!-- duplicate the Ant classes into a jar --> |
| <jar destfile="${output.dir}/ant-runtime-duplicated.jar" basedir="${ant.runtime.classes.original.path}"/> |
| |
| <junitlauncher> |
| <classpath> |
| <path refid="junit.engine.vintage.classpath"/> |
| <pathelement location="${build.classes.dir}"/> |
| <!-- our duplicated Ant runtime classes jar, since we |
| exclude the original Ant runtime classes on the fork element |
| by setting includeAntRuntimeLibraries=false --> |
| <pathelement location="${output.dir}/ant-runtime-duplicated.jar"/> |
| <!-- we set includeJUnitPlatformLibraries=false on the fork element |
| and then explicitly specify a location of the JUnit platform libraries --> |
| <path refid="junit.platform.classpath"/> |
| </classpath> |
| <testclasses outputdir="${output.dir}"> |
| <fileset dir="${build.classes.dir}"> |
| <include name="org/example/**/junitlauncher/**/JUnit4SampleTest.class"/> |
| </fileset> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${test-ant-and-junit-platform-lib-custom-location.tracker}" |
| if="test-ant-and-junit-platform-lib-custom-location.tracker"/> |
| <fork dir="${basedir}" includeAntRuntimeLibraries="false" includeJUnitPlatformLibraries="false"/> |
| </testclasses> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-method-with-include-tag" depends="init"> |
| <!-- junitlauncher includeTags="fast, superfast" excludeTags="slow"--> |
| <junitlauncher includeTags=" fast , superfast" excludeTags=" slow"> |
| <test name="org.example.junitlauncher.jupiter.JupiterSampleTest" outputdir="${output.dir}"> |
| <listener classname="org.example.junitlauncher.Tracker" outputDir="${output.dir}" |
| resultFile="${test-method-with-include-tag.tracker}" if="test-method-with-include-tag.tracker" /> |
| </test> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-method-with-exclude-tag" depends="init"> |
| <junitlauncher excludeTags="slow"> |
| <test name="org.example.junitlauncher.jupiter.JupiterSampleTest" outputdir="${output.dir}"> |
| <listener classname="org.example.junitlauncher.Tracker" outputDir="${output.dir}" |
| resultFile="${test-method-with-exclude-tag.tracker}" if="test-method-with-exclude-tag.tracker" /> |
| </test> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-method-with-tag-2-classes" depends="init"> |
| <junitlauncher includeTags="fast"> |
| <test name="org.example.junitlauncher.jupiter.JupiterSampleTest" outputdir="${output.dir}"> |
| <listener classname="org.example.junitlauncher.Tracker" outputDir="${output.dir}" |
| resultFile="${test-method-with-tag-2-classes1.tracker}" if="test-method-with-tag-2-classes1.tracker" /> |
| </test> |
| <test name="org.example.junitlauncher.jupiter.JupiterTagSampleTest" outputdir="${output.dir}"> |
| <listener classname="org.example.junitlauncher.Tracker" outputDir="${output.dir}" |
| resultFile="${test-method-with-tag-2-classes2.tracker}" if="test-method-with-tag-2-classes2.tracker" /> |
| </test> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-beforeall-failure-stops-build" depends="init"> |
| <property name="junitlauncher.test.tracker.append.file" value="${output.dir}/${test-beforeall-failure-stops-build.tracker}"/> |
| <junitlauncher> |
| <listener classname="org.example.junitlauncher.Tracker" |
| if="test-beforeall-failure-stops-build.tracker"/> |
| <test name="org.example.junitlauncher.jupiter.JupiterSampleTestFailingBeforeAll" haltOnFailure="true"/> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-beforeall-failure-continues-build" depends="init"> |
| <property name="junitlauncher.test.tracker.append.file" value="${output.dir}/${test-beforeall-failure-continues-build.tracker}"/> |
| <junitlauncher> |
| <listener classname="org.example.junitlauncher.Tracker" |
| if="test-beforeall-failure-continues-build.tracker"/> |
| <test name="org.example.junitlauncher.jupiter.JupiterSampleTestFailingBeforeAll"/> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-method-with-tag-fileset" depends="init"> |
| <property name="junitlauncher.test.tracker.append.file" value="${output.dir}/${test-method-with-tag-fileset.tracker}"/> |
| <junitlauncher includeTags="fast"> |
| <testclasses outputdir="${output.dir}"> |
| <fileset dir="${build.classes.dir}"> |
| <include name="org/example/junitlauncher/jupiter/*" /> |
| </fileset> |
| <listener classname="org.example.junitlauncher.Tracker" outputDir="${output.dir}" |
| if="test-method-with-tag-fileset.tracker" /> |
| </testclasses> |
| </junitlauncher> |
| </target> |
| |
| <target name="test-method-with-tag-fileset-fork" depends="init"> |
| <property name="junitlauncher.test.tracker.append.file" value="${output.dir}/${test-method-with-tag-fileset-fork.tracker}" /> |
| <junitlauncher includeTags="fast"> |
| <classpath refid="junit.engine.jupiter.classpath" /> |
| <classpath> |
| <pathelement location="${build.classes.dir}" /> |
| </classpath> |
| <classpath refid="junit.platform.classpath" /> |
| <testclasses outputdir="${output.dir}"> |
| <fileset dir="${build.classes.dir}"> |
| <include name="org/example/junitlauncher/jupiter/*" /> |
| </fileset> |
| <fork dir="${basedir}" includeJUnitPlatformLibraries="false"> |
| </fork> |
| <listener classname="org.example.junitlauncher.Tracker" outputDir="${output.dir}" |
| if="test-method-with-tag-fileset-fork.tracker" /> |
| </testclasses> |
| </junitlauncher> |
| </target> |
| |
| <target name="bz-63958"> |
| <junitlauncher> |
| <classpath refid="test.classpath"/> |
| <testclasses> |
| <listener classname="org.example.junitlauncher.Tracker" |
| outputDir="${output.dir}" |
| resultFile="${bz-63958.tracker}" |
| if="bz-63958.tracker"/> |
| <fileset dir="${build.classes.dir}"> |
| <include name="**/ForkedTest.class"/> |
| </fileset> |
| <fork> |
| <sysproperty key="junitlauncher.test.sysprop.one" value="forked"/> |
| </fork> |
| </testclasses> |
| <listener type="legacy-plain" sendSysOut="true" /> |
| </junitlauncher> |
| </target> |
| </project> |
| |