【发布时间】:2016-09-21 09:02:18
【问题描述】:
我正在使用 Apache Ant 编译和运行 JUnit 测试。目前,它正在将 ant JUnit 库作为 Ant 的一部分安装的环境中工作,但不在其他环境中。我想解决这个问题。我试过包括需要的罐子(junit-4.12.jar 和hamcrest-core-1.3.jar,如果我理解正确的话),但它不起作用。我的build.xml的相关部分如下:
<property name="build.path" location="build/src"/>
<property name="build.test.path" location="build/test"/>
<property name="lib.path.rel" value="lib"/>
<property name="junit.file" value="${lib.path.rel}/junit/junit-4.12.jar"/>
<property name="hamcrest.file" value="${lib.path.rel}/junit/hamcrest-core-1.3.jar"/>
<path id="junit.class.path">
<pathelement location="${junit.file}"/>
<pathelement location="${hamcrest.file}"/>
<pathelement location="${build.path}"/>
</path>
<target name="test-compile" depends="test-clean">
<mkdir dir="${build.test.path}"/>
<javac srcdir="${test.path}"
destdir="${build.test.path}"
includeantruntime="false">
<classpath refid="junit.class.path" />
</javac>
</target>
<target name="test" depends="test-compile">
<junit>
<classpath>
<path refid="junit.class.path"/>
<pathelement location="${build.test.path}"/>
</classpath>
<batchtest>
<fileset dir="${build.test.path}">
<include name="**/*Test*"/>
</fileset>
</batchtest>
<formatter type="brief" usefile="false"/>
</junit>
</target>
任务test-compile 成功构建测试。
但是,任务 test 会导致以下错误:Problem: failed to create task or type junit
Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found.
我正在使用带有 Ant 1.9.2 的 CentOS 7,尽管我认为要求用户将 Ant 更新到可用的最新版本是合理的,但我无法控制他们安装了哪些操作系统和库。因此,我不想通过yum install something 或其他方式解决问题,而是通过找到正确使用 JUnit jar 文件的方法(如果可能的话)。然后,当他们拉取 git 存储库并运行任务时,它将在任何操作系统或环境上运行(因为他们将使用他们刚刚拉取的 jar 文件)。显然,这也意味着“只将 jars 放在 Ant lib 目录中”将不是一个可行的解决方案。
谢谢。
【问题讨论】:
-
你考虑过使用Maven下载必要的jar吗?如果没有,这可以帮助你:stackoverflow.com/questions/25628253/…