我在尝试使用
时遇到了麻烦<dirsets>
在我的junit蚂蚁。 这是类路径的片段。
<target name="myTests" >
<junit haltonerror="true" haltonfailure="true" fork="true">
<classpath>
<dirset dir="/my/absolute/root/path/where/I/keep/compiled/classes">
<include name="com/mycompany/mytests"/>
</dirset>
<pathelement location="my/path/to/jars/myjar1.jar" />
<pathelement location="my/path/to/jars/myjar2.jar" />
<!-- and so on -->
</classpath>
<test name="com.mycompany.mytests.MyFirstTest"
outfile="${dir.report.test}/report_MyFirstTest">
<formatter type="xml" />
</test>
</junit>
</target>
当我启动测试时,在成功编译完所有代码之后,ant抱怨:
java.lang.ClassNotFoundException: com.mycompany.mytests.MyFirstTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
我试过绝对的,相对的路径,它永远不会奏效。我的类路径包含许多用许多指定的jar,而且从未被识别过。 我的错在哪里?
感谢
答案 0 :(得分:1)
我之前使用过ant时,我使用了嵌套的<classpath>
元素,并使用path-like结构指定了类路径 - 就像这样:
<path id="project.test.classpath">
<pathelement location="/my/absolute/root/path/where/I/keep/compiled/classes" />
<fileset dir="/my/path/to/jars">
<include name="**/*.jar" />
</fileset>
</path>
<target name="myTests">
<junit haltonerror="true" haltonfailure="true" fork="true">
<classpath refid="project.test.classpath" />
<test name="com.mycompany.mytests.MyFirstTest" outfile="${dir.report.test}/report_MyFirstTest">
<formatter type="xml" />
</test>
</junit>
</target>
也许这也适合你。