这个Ant-Target的工作原理:
<target name="run">
<java jar="dist/FBChatSoft.jar" fork="true"/>
</target>
所以“dist / FBChatSoft.jar”是jar的正确路径 .
但是以下目标不起作用 . * Test.java的路径也是正确的 . ,
<target name="junit" depends="jar">
<mkdir dir="junitreport"/>
<junit printsummary="yes">
<classpath>
<path location="dist/FBChatSoft.jar"/>
</classpath>
<formatter type="xml"/>
<batchtest fork="yes" todir="junitreport">
<fileset dir="src/fbchatsoft/client/" includes="*Test.java"/>
</batchtest>
</junit>
</target>
<target name="junitreport">
<junitreport todir="junitreport">
<fileset dir="junitreport" includes="TEST-*.xml"/>
<report todir="junitreport"/>
</junitreport>
</target>
在JUnitReport中我可以读到:
PropertiesHelperTest java.lang.ClassNotFoundException:java.net.URLClassLoader $ 1.run(URLClassLoader.java:217)中的PropertiesHelperTest,位于java.net.URLClassLoader.findClass(URLClassLoader.java)的java.security.AccessController.doPrivileged(Native Method) 205)at java.lang.ClassLoader.loadClass(ClassLoader.java:321)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:294)at java.lang.ClassLoader.loadClass(ClassLoader.java:266)at at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:186)
您可以在以下位置找到整个代码:https://bitbucket.org/michaelkohler/fbchatsoft/src
2 回答
您需要使用
**/*Test.java
以递归方式包含文件 .请参阅fileset和directory-based tasks文档 .
我编辑了我的build.xml,现在它看起来像这样:
然后我将最新的junit包添加到/ usr / share / ant / lib,现在它可以工作了!