我正在使用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>
这是我在运行构建脚本时遇到的错误
Buildfile: /用户/ NhatAnh /文档/研究/UMASS/S20/CS680/CS680-UMB/HW02/build.xml [echo] JUNIT:/ Users / NhatAnh / junit [echo] ANT_HOME:/Users/NhatAnh/apache-ant-1.10.7 [回声] / Users / NhatAnh / Documents / Study / UMASS / S20 / CS680 / CS680-UMB / HW02 / bin:/ Users / NhatAnh / Documents / Study / UMASS / S20 / CS680 / CS680-UMB / HW02 / test / bin
init:
编译:
编译测试: [javac]将1个源文件编译到/ Users / NhatAnh / Documents / Study / 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]导入静态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] /Users/NhatAnh/Documents/Study/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] /Users/NhatAnh/Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/test/src/edu/umb/cs680/hw02/CalculatorTest.java:12: 错误:找不到符号 [javac] assertEquals(actual,expected); [javac] ^ [javac]符号:方法assertEquals(float,float) [javac]位置:类CalculatorTest [javac] /Users/NhatAnh/Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/test/src/edu/umb/cs680/hw02/CalculatorTest.java:20: 错误:找不到符号 [javac] assertEquals(actual,expected); [javac] ^ [javac]符号:方法assertEquals(float,float) [javac]位置:类CalculatorTest [javac] /Users/NhatAnh/Documents/Study/UMASS/S20/CS680/CS680-UMB/HW02/test/src/edu/umb/cs680/hw02/CalculatorTest.java:28: 错误:找不到符号 [javac] fail(“除以零”); [javac] ^ [javac]符号:方法fail(String) [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个错误