2011-02-26 75 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和現在的作品!

相關問題