La configuration de fourmi pour exécuter les tests unitaires. Où dois-bibliothèques être? Comment doit-classpath être configuré? en évitant ZipException

Je suis en train de lancer mon junit tests à l'aide d'ant. Les tests sont des coups de pied à l'aide d'une suite de tests JUnit 4. Si je l'exécute directement à partir d'Eclipse. les tests complète sans erreur. Cependant, si je le lance à partir de fourmi nombre de ces tests échoue avec cette erreur répétée encore et encore jusqu'à ce que la junit tâche se bloque.

 [junit] java.util.zip.ZipException: erreur dans l'ouverture de fichier zip 
[junit] à java.util.zip.ZipFile.ouvert(Native method) 
[junit] à java.util.zip.ZipFile.(ZipFile.java:114) 
[junit] à java.util.zip.ZipFile.(ZipFile.java:131) 
[junit] au org.apache.outils.ant.AntClassLoader.getResourceURL(AntClassLoader.java:1028) 
[junit] au org.apache.outils.ant.AntClassLoader$ResourceEnumeration.findNextResource(AntClassLoader.java:147) 
[junit] au org.apache.outils.ant.AntClassLoader$ResourceEnumeration.nextElement(AntClassLoader.java:130) 
[junit] au org.apache.outils.ant.util.CollectionUtils$CompoundEnumeration.nextElement(CollectionUtils.java:198) 
[junit] au soleil.misc.CompoundEnumeration.nextElement(CompoundEnumeration.java:43) 
[junit] au org.apache.outils.ant.taskdefs.facultatif.junit.JUnitTask.checkForkedPath(JUnitTask.java:1128) 
[junit] au org.apache.outils.ant.taskdefs.facultatif.junit.JUnitTask.executeAsForked(JUnitTask.java:1013) 
[junit] au org.apache.outils.ant.taskdefs.facultatif.junit.JUnitTask.execute(JUnitTask.java:834) 
[junit] au org.apache.outils.ant.taskdefs.facultatif.junit.JUnitTask.executeOrQueue(JUnitTask.java:1785) 
[junit] au org.apache.outils.ant.taskdefs.facultatif.junit.JUnitTask.execute(JUnitTask.java:785) 
[junit] au org.apache.outils.ant.UnknownElement.execute(UnknownElement.java:288) 
[junit] au soleil.de réfléchir.GeneratedMethodAccessor1.invoke(Source Inconnue) 
[junit] au soleil.de réfléchir.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[junit] à java.lang.de réfléchir.La méthode.invoke(la Méthode.java:597) 
[junit] au org.apache.outils.ant.de l'expédition.DispatchUtils.execute(DispatchUtils.java:106) 
[junit] au org.apache.outils.ant.De la tâche.effectuer(Tâche.java:348) 
[junit] au org.apache.outils.ant.Cible.execute(la Cible.java:357) 
[junit] au org.apache.outils.ant.Cible.performTasks(la Cible.java:385) 
[junit] au org.apache.outils.ant.Projet.executeSortedTargets(du Projet.java:1337) 
[junit] au org.apache.outils.ant.Projet.executeTarget(du Projet.java:1306) 
[junit] au org.apache.outils.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
[junit] au org.apache.outils.ant.Projet.executeTargets(du Projet.java:1189) 
[junit] au org.apache.outils.ant.Principal.runBuild(Principale.java:758) 
[junit] au org.apache.outils.ant.Principal.startAnt(Principale.java:217) 
[junit] au org.apache.outils.ant.de lancement.Lanceur.exécuter(Lanceur.java:257) 
[junit] au org.apache.outils.ant.de lancement.Lanceur.principale(Lanceur.java:104) 

mon test de la tâche en cours d'exécution est comme suit:

 <nom de la cible="run-junit-tests" depends="compilation des tests,nettoyez-les résultats"> 
<mkdir dir="${test.résultats.dir}"/> 
<junit failureproperty="tests.échec de la" fourche="true" showoutput="oui" includeantruntime="false"> 
<classpath refid="test.exécuter.chemin" /> 
<module de formatage type="xml" /> 
<test name="projet.AllTests" todir="${basedir}/test-résultats" /> 
</junit> 
<échouer si="tests.le message" echec="tests Unitaires échec"/> 
</target> 

J'ai vérifié que le classpath contient les éléments suivants ainsi que tout le code du programme et des bibliothèques:

ant-junit.jar 
ant-launcher.jar 
ant.jar 
easymock.jar 
easymockclassextension.jar 
junit-4.4.jar

J'ai essayé de débogage pour savoir qui ZipFile c'est en essayant de l'ouvrir avec pas de chance, j'ai essayé de basculement includeantruntime et fork et j'ai essayé de courir ant avec ant -lib test/libs où test/libs contient la fourmi et junit bibliothèques.

Aucune info sur ce que sont les causes de cette exception ou de la façon dont vous avez configuré ant à exécuter avec succès les tests unitaires est reçu avec gratitude.

ant 1.7.1 (ubuntu), java 1.6.0_10, junit 4.4

Grâce.

Mise À Jour - Correction D'
Trouvé mon problème. J'avais compris mon répertoire classes dans mon chemin à l'aide d'un fileset par opposition à un pathelement c'était à l'origine .les fichiers de classe pour être ouvert en tant que ZipFiles qui, évidemment, a déclenché une exception.

InformationsquelleAutor chillitom | 2009-01-20