J'essaie d'exécuter une tâche JUnit 4.8.1 dans Ant 1.7.1. Mon IDE est Eclipse Helios. Je me suis cogné la tête contre un mur de briques pendant 2 jours et je n'arrive pas à comprendre. Je suis sûr qu'en lisant d'autres articles c'est un problème de classpath, mais je ne peux pas voir où je vais mal.La tâche Ant JUnit n'a pas pu trouver junit/framework/TestCase.class
suite de tests Mon junit4 est défini comme suit:
package mypackage.tests;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
/**
* JUnit 4 Test Suite for the entire <code>mypackage</code>
* package
*/
@RunWith(Suite.class)
@Suite.SuiteClasses({ mypackage.tests.controller.AllTests.class })
public class AllTests {
}
... assez simple, mais le test échoue avec un ClassNotFoundException
java.lang.ClassNotFoundException: mypackage.tests.AllTests
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
Lorsque je passe sur le drapeau de débogage, je reçois la trace suivante de Ant:
(...)
[junit] Couldn't find junit/framework/TestCase.class
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-launcher.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-junit.jar
fileset: Setup scanner in dir C:\eclipse\plugins with patternSet{ includes: [org.junit_4.8.1.v4_8_1_v20100427-1100/junit.jar] excludes: [] }
Finding class junit.framework.Test
Loaded from C:\eclipse\plugins\org.junit_4.8.1.v4_8_1_v20100427-1100\junit.jar junit/framework/Test.class
(...)
De toute évidence, le jar JUnit est sur le chemin de classe, et o D'autres classes telles que Test.class sont en train d'être récupérées, alors pourquoi ai-je le message 'could Test find TestClass.class'?
J'essayé d'ajouter le junit.jar à la fourmi classpath dans l'interface graphique Eclipse, et cela a l'effet suivant: quelqu'un
(...)
[junit] Found C:\eclipse\plugins\org.junit_4.8.1.v4_8_1_v20100427-1100\junit.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-launcher.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-junit.jar
(...)
[junit] WARNING: multiple versions of ant detected in path for junit
[junit] jar:file:C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant.jar!/org/apache/tools/ant/Project.class
[junit] and jar:file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant.jar!/org/apache/tools/ant/Project.class
(...)
Peut-s'il vous plaît aidez-moi s'il vous plaît s'il vous plaît pour obtenir ce travail! Oh, j'ai presque oublié ... la suite de tests tourne bien depuis Eclipse.
Merci d'avance!
OMG, je pourrais pleurer. Deux jours pour ça! C'était précisément le problème. Je ne pouvais pas comprendre comment ajouter les fichiers de classe seulement, donc j'ai inclus une tâche et ajouté le fichier jar au classpath. –
user391549