2011-02-26 3 views
1

Cela fonctionne Ant-cible:JUnit-test a commencé avec Ant donne un "ClassNotFoundException"

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

donc "dist/FBChatSoft.jar" est le chemin correct du pot.

Mais la cible suivante ne fonctionne pas. Le chemin vers le * Test.java est également correcte,

<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> 

Dans le JUnitReport je peux lire:.

PropertiesHelperTest

java.lang.ClassNotFoundException: PropertiesHelperTest à java. net.URLClassLoader $ 1.run (URLClassLoader.java:217) à java.security.AccessController.doPrivileged (méthode native) à java.net.URLClassLoader.findClass (URLClassLoader.java:205) at java.lang.ClassLoader.loadClass (ClassLoader.java:321) à sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:294) à java.lang.ClassLoader.loadClass (ClassLoader.java:266) à java.lang.Class.forName0 (native Method) à java.lang.Class.forName (Class.java:186)

Vous pouvez trouver le code entier à: https://bitbucket.org/michaelkohler/fbchatsoft/src

Répondre

0

Vous avez besoin pour utiliser **/*Test.java afin d'inclure des fichiers récursivement. Voir la documentation fileset et directory-based tasks.

+0

Il est maintenant comme suit: '

' mais j'obtiens toujours cette erreur. –

0

J'ai effectué mon build.xml et maintenant il ressemble à ceci:

<?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> 

Puis j'ai ajouté le paquet le plus récent JUnit/usr/share/ant/lib et maintenant ça marche!

Questions connexes