我在ant中有以下任务:
<target name="init-junit" depends="init">
<mkdir dir="${junit.reports.individual}" />
<property name="running-junit" value="true" />
</target>
<target name="run-tests" depends="init-junit, compile">
<junit>
<classpath refid="classpath" />
<formatter type="xml" />
<batchtest todir="${junit.reports.individual}">
<fileset dir="${dir.build}" includes="**/*Test*" />
</batchtest>
</junit>
</target>
<target name="compile-reports" depends="run-tests">
<junitreport todir="${junit.reports}" tofile="junit-report.xml">
<fileset dir="${junit.reports.individual}" />
<report format="frames" todir="${junit.reports}/html" />
</junitreport>
</target>
${dir.build}
是包含所有.class
个文件的目录。当我在eclipse中运行它们时,jUnit测试工作,但是当我通过ant(通过eclipse或终端运行)运行它们时失败;他们每个都抛出以下异常:
org.fscit.{name of class} java.lang.ClassNotFoundException: org.fscit.{name of class} at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247)
我的junit-4.8.2.jar
文件夹中有lib
,该文件夹位于带有id classpath
的类路径中,我的项目根目录中有build.xml,其basedir
1}}属性设置为.
。任何人都可以帮助我吗?
答案 0 :(得分:4)
您需要在类路径中拥有类的目标目录。你的classpath元素应该有${dir.build}
。
<path id="classpath">
<pathelement location="${dir.build}"/>
答案 1 :(得分:0)
使用pathelement任务
<pathelement location="${dir.build}" />
而不是文件集任务
<fileset dir="${dir.build}" />
它适用于我(蚂蚁版本是1.7.1)