Я пишу скрипт сборки с использованием Ant. Я успешно использую его для компиляции класса Java. Однако, когда дело доходит до компиляции тестового файла JUnit, скрипт сборки завершается неудачно. Ошибка в том, что он не может найти пакет JUnit.
Я скачал следующие файлы и поместил их в папку с именем junit :
apiguardian-api-1.1 .0.jar
junit-platform-commons-1.6.0.jar
junit-platform-suite-api-1.6.0.jar
junit-jupiter-api-5.6.0.jar
junit-platform-engine-1.6.0.jar
junit-vintage-engine-5.6.0.jar
junit-jupiter-engine-5.6.0.jar
junit-platform-launcher-1.6 .0.jar junit.jar
junit-jupiter-params-5.6.0.jar
junit-platform-runner-1.6.0.jar
opentest4j-1.2.0.jar
Моя переменная среды JUNIT / Users / NhatAnh / junit
Вот мой сценарий сборки:
<?xml version="1.0"?>
<project name="hw02" basedir="." default="clean">
<property environment="env"/>
<echo message="JUNIT: ${env.JUNIT}"/>
<echo message="ANT_HOME: ${env.ANT_HOME}"/>
<property name="src" location="src"/>
<property name="bin" location="bin"/>
<property name="test.src" location="test/src" />
<property name="test.bin" location="test/bin" />
<property name="test.reports" location="test/reports" />
<path id="classpath">
<pathelement location="bin"/>
<pathelement location="test/bin" />
<fileset dir="${env.JUNIT}" includes="org.junit*.jar" excludes="org.junit.vintage.*.jar" />
<fileset dir="${env.JUNIT}" includes="org.opentest4j*.jar" />
<fileset dir="${env.JUNIT}" includes="org.apiguardian*.jar" />
</path>
<echo message="${toString:classpath}"/>
<target name="init">
<mkdir dir="${bin}"/>
<mkdir dir="${test.bin}"/>
<mkdir dir="${test.reports}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${bin}" includeAntRuntime="no">
<classpath refid="classpath"/>
<include name="edu/umb/cs680/hw02/Calculator.java"/>
</javac>
</target>
<target name="compile-test" depends="compile">
<javac srcdir="${test.src}" destdir="${test.bin}" includeAntRuntime="no">
<classpath refid="classpath"/>
<include name="edu/umb/cs680/hw02/CalculatorTest.java"/>
</javac>
</target>
<target name="run-test" depends="compile-test">
<junitlauncher printSummary="true">
<classpath refid="classpath" />
<testclasses outputdir="test">
<fileset dir="${test.bin}">
<include name="edu/umb/cs680/hw02/*Test.class"/>
</fileset>
<listener type="legacy-plain" sendSysOut="true"/>
</testclasses>
</junitlauncher>
</target>
<target name="run" depends="run-test">
<java classname="edu.umb.cs680.hw02.Calculator"
classpathref="classpath"
fork="true"/>
</target>
<target name="clean" depends="run">
<delete includeemptydirs="true">
<fileset dir="${bin}/edu/umb/cs680/hw02" includes="**/*"/>
<fileset dir="${test.bin}/edu/umb/cs680/hw02" includes="**/*" />
</delete>
</target>
</project>
Это ошибка, которую я получаю при запуске скрипт сборки
Файл сборки: /Users/NhatAnh/Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/build.xml [echo] JUNIT: / Users / NhatAnh / junit [echo] ANT_HOME: /Users/NhatAnh/apache-ant-1.10.7 [echo] / Пользователи / NhatAnh / Документы / Исследование / UMASS / S20 / CS680 / CS680-UMB / HW02 / bin: / Users / NhatAnh / Документы / Исследование / UMASS / S20 / CS680 / CS680-UMB / HW02 / test / bin
init:
compile :
compile-test: [javac] Компиляция 1 исходного файла в / Users / NhatAnh / Документы / Исследование / UMASS / S20 / CS680 / CS680-UMB / HW02 / test / bin [javac] / Users / NhatAnh /Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/test/src/edu/umb/cs680/hw02/CalculatorTest.java:3: ошибка: пакет org.junit.jupiter.api не существует [javac] import stati c org.junit.jupiter.api.Assertions. *; [javac] ^ [javac] /Users/NhatAnh/Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/test/src/edu/umb/cs680/hw02/CalculatorTest.java:4: ошибка: пакет org.junit.jupiter.api не существует [javac] import org.junit.jupiter.api.Test; [javac] ^ [javac] /Users/NhatAnh/Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/test/src/edu/umb/cs680/hw02/CalculatorTest.java:7: ошибка: не удается найти символ [javac] @Test [javac] ^ [javac] символ: класс Test [javac] расположение: класс CalculatorTest [javac] / Пользователи / NhatAnh / Документы / Исследование / UMASS / S20 / CS680 / CS680-UMB / HW02 / test / src / edu / umb / cs680 / hw02 / CalculatorTest. java: 15: ошибка: не удается найти символ [javac] @Test [javac] ^ [javac] символ: класс Test [javac] расположение: класс CalculatorTest [javac ] /Users/NhatAnh/Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/test/src/edu/umb/cs680/hw02/CalculatorTest.java:23: ошибка: не удается найти символ [javac] @Test [javac] ^ [javac] символ: класс Test [javac] расположение: класс CalculatorTest [javac] / Пользователи / NhatAnh / Документы / Исследование / UMASS / S20 / CS680 / CS680-UMB / HW02 / test / src / edu / umb / cs680 / hw02 / CalculatorTest. java: 12: ошибка: не удается найти символ [javac] assertEquals (фактический, ожидаемый); [javac] ^ [javac] символ: метод assertEquals (float, float) [javac] расположение: класс CalculatorTest [javac] / Пользователи / NhatAnh / Документы / Исследование / UMASS / S20 / CS680 / CS680-UMB / HW02 / test / src /edu/umb/cs680/hw02/CalculatorTest.java:20: ошибка: не удается найти символ [javac] assertEquals (фактический, ожидаемый); [javac] ^ [javac] символ: метод assertEquals (float, float) [javac] расположение: класс CalculatorTest [javac] / Пользователи / NhatAnh / Документы / Исследование / UMASS / S20 / CS680 / CS680-UMB / HW02 / test / src /edu/umb/cs680/hw02/CalculatorTest.java:28: ошибка: не удается найти символ [javac] fail («Деление на ноль»); [javac] ^ [javac] символ: метод с ошибкой (строка) [javac] расположение: класс CalculatorTest [javac] /Users/NhatAnh/Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/test/src/edu/umb/cs680/hw02/CalculatorTest.java:30: ошибка: не удается найти символ [ javac] assertEquals («деление на ноль», e.getMessage ()); [javac] ^ [javac] символ: метод assertEquals (String, String) [javac] расположение: класс CalculatorTest [javac] 9 ошибок