[英]Ant junit target failing because ClassNotFoundException?
我想用ant运行JUnit测试。 目前,我的build.xml中包含以下内容:
...
<property name="src.main.dir" location="src" />
<property name="src.test.dir" location="test" />
<property name="lib.dir" location="lib" />
<property name="build.dir" location="build" />
<property name="reports.dir" location="reports" />
<property name="reports.tests.dir" location="${reports.dir}/tests" />
<property name="jar.dir" location="${build.dir}/jar" />
<property name="classes.dir" location="${build.dir}/classes" />
<property name="classes.main.dir" location="${classes.dir}/main" />
<property name="classes.test.dir" location="${classes.dir}/test" />
<target name="main" depends="test">
<echo message="targets completed" />
</target>
<target name="test" depends="compile" >
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<path>
<fileset dir="${lib.dir}">
<include name="hamcrest-core-1.3.jar" />
<include name="junit-4.12.jar" />
</fileset>
</path>
</classpath>
<formatter type="plain"/>
<batchtest fork="yes" todir="${reports.tests.dir}">
<fileset dir="${src.test.dir}">
<include name="**/*Test.java" />
</fileset>
</batchtest>
</junit>
</target>
...
如果我运行ant, ClassNotFoundException
收到ClassNotFoundException
异常:
Testsuite: com.aaa.viewlog.dataobjects.ComparablePairTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec
Caused an ERROR
com.aaa.viewlog.dataobjects.ComparablePairTest
java.lang.ClassNotFoundException: com.aaa.viewlog.dataobjects.ComparablePairTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:260)
你能告诉我为什么我会例外吗,我该如何解决?
发现了错误。 我忘了添加这些:
<pathelement path="${classes.test.dir}"/>
<pathelement path="${classes.main.dir}"/>
以“测试”目标。 现在,“测试”目标看起来像这样:
<formatter type="plain"/>
<batchtest fork="yes" todir="${reports.tests.dir}">
<fileset dir="${src.test.dir}">
<include name="**/*Test.java" />
</fileset>
</batchtest>
</junit>
</target>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.