2011-02-26 128 views
1

此Ant-目标工作:的JUnit测试开始使用Ant提供了一个 “ClassNotFoundException的”

<target name="run"> 
    <java jar="dist/FBChatSoft.jar" fork="true"/> 
</target> 

所以 “DIST/FBChatSoft.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: PropertiesHelperTest 在java中。 net.URLClassLoader $ 1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java: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) 在java.lang.Class.forName0(本机方法) 在java.lang.Class.forName(Class.java:186)

您可以在整个代码:https://bitbucket.org/michaelkohler/fbchatsoft/src

回答

0

您需要使用**/*Test.java以递归地包含文件。

请参阅filesetdirectory-based tasks文档。

+0

它现在以下: ' <文件集DIR = “SRC/fbchatsoft /客户端/” 包括= “**/* Test.java”/> ' 但我仍然收到此错误。 – 2011-02-27 18:55:27

0

我编辑我的build.xml,现在它看起来像这样:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="FBChatSoft" default="default" basedir="."> 
    <description>Builds, tests, and runs the project FBChatSoft.</description> 

    <import file="nbproject/build-impl.xml"/> 

    <import file="nbproject/profiler-build-impl.xml"/> 

    <target name="clean"> 
     <delete dir="dist"/> 
    </target> 

    <target name="compile"> 
     <mkdir dir="build/classes"/> 
     <javac srcdir="src" destdir="build/classes"/> 
    </target> 

    <target name="jar"> 
     <mkdir dir="dist"/> 
     <jar destfile="dist/FBChatSoft.jar" basedir="build/classes"> 
      <manifest> 
       <attribute name="Main-Class" value="fbchatsoft.client.FBChatSoft"/> 
     <attribute name="Class-Path" value="lib/smack.jar lib/junit-4.5.jar"/> 
      </manifest> 
     </jar> 
    </target> 

    <target name="run"> 
     <java jar="dist/FBChatSoft.jar" fork="true"/> 
    </target> 

    <target name="junit" depends="jar"> 
     <mkdir dir="junitreport"/> 
     <junit printsummary="yes"> 
      <classpath> 
       <pathelement location="build/classes/"/> 
      </classpath> 

      <formatter type="xml"/> 

      <batchtest todir="junitreport"> 
       <fileset dir="src/" includes="**/*Test.java"/> 
      </batchtest> 
     </junit> 
    </target> 

    <target name="junitreport"> 
     <junitreport todir="junitreport"> 
      <fileset dir="junitreport" includes="TEST-*.xml"/> 
      <report todir="junitreport"/> 
     </junitreport> 
    </target> 
</project> 

然后,我添加了最新的junit包到/ usr /共享/蚂蚁/ lib和现在的作品!

相关问题