我有一个使用 JUnit 进行单元测试的项目。问题是当我尝试从 Eclipse 编译和运行我的项目时,一切都运行良好,但是当我尝试使用 Ant 编译时,我收到大量错误,它无法识别来自 JUnit 的任何函数(如test()
)。我junit.jar
在项目文件夹中复制,我的类路径是“./”,但它仍然不起作用。有人知道我应该怎么做才能完成这项工作吗?
问问题
102 次
1 回答
1
编译测试代码时,您需要确保 JUnit jar 在您的类路径中。您还需要所有其他依赖项,以及您之前编译的类的类路径。
假设这是您编译常规代码的方式:
<property name="main.lib.dir" value="???"/>
<property name="junit.jar" value="???"/>
<target name="compile"
description="Compile my regular code">
<javac srcdir="${main.srcdir}"
destdir="${main.destir}">
<classpath path="${main.lib.dir}"/>
</javac>
请注意,我有一个目录,其中包含我的代码所依赖的所有 jar。这是${main.lib.dir}
. 请注意,我的类被编译为${main.destdir}
. 另请注意,我有一个属性指向${junit.jar}
. 我还没用那个。
现在编译我的测试类:
<target name="test-compile"
description="Compile my JUnit tests">
<javac srcdir="${test.srcdir}"
destdir="${test.destdir}">
<classpath path="${main.lib.dir}"/>
<classpath path="${main.destdir}"/>
<classpath path="${junit.jar}"/>
</javac>
请注意,我的类路径中现在有三个项目:
- 我编译的代码所依赖的罐子。
- 我编译非测试 Java 代码的目录
- 还有 JUnit jar 本身。
编译测试类后,您现在可以使用该<junit>
任务来运行测试:
<junit fork="true"
includeantruntime="true">
<formatter .../>
<batchtest todir="${test.output.dir}"/>
<classpath="${test.destdir}"/>
</junit>
于 2013-01-11T21:24:03.690 回答