Lorsque j'essaie de lancer mon test JUnit à partir d'Eclipse, j'obtiens une "ClassNotFoundException". Lorsque j'exécute "mvn test" à partir de la console, tout fonctionne correctement. De même, aucun problème n'est signalé dans Eclipse.
La structure de mon projet est la suivante :
- projet parent (pom-packaging)
- Projet Web (war-packaging - mon test JUnit est ici)
- Projet Flex
- Projet de configuration
edit : Comment la classe peut-elle être introuvable ? Il s'agit d'une simple application HelloWorld sans aucune bibliothèque particulière.
Voici la configuration d'exécution de mon JUnit : texte alt http://www.walkner.biz/_temp/runconfig.png
Testclass (mais comme je l'ai dit, cela ne fonctionne pas non plus avec un simple HelloWorld...) :
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import biz.prognoserechnung.domain.User;
import biz.prognoserechnung.domain.UserRepository;
import biz.prognoserechnung.domain.hibernate.UserHibernateDao;
public class UserDaoTest {
/**
* the applicationcontext.
*/
private ApplicationContext ctx = null;
/**
* the user itself.
*/
private User record = null;
/**
* Interface for the user.
*/
private UserRepository dao = null;
@Before
public void setUp() throws Exception {
String[] paths = { "WEB-INF/applicationContext.xml" };
ctx = new ClassPathXmlApplicationContext(paths);
dao = (UserHibernateDao) ctx.getBean("userRepository");
}
@After
public void tearDown() throws Exception {
dao = null;
}
@Test
public final void testIsUser() throws Exception {
Assert.assertTrue(dao.isUser("John", "Doe"));
}
@Test
public final void testIsNoUser() throws Exception {
Assert.assertFalse(dao.isUser("not", "existing"));
Assert.assertFalse(dao.isUser(null, null));
Assert.assertFalse(dao.isUser("", ""));
}
}
3 votes
J'obtiens la même erreur en essayant d'exécuter une simple classe HelloWorld sans JUnit... Plus exactement : java.lang.NoClassDefFoundError : HelloWorld Caused by : java.lang.ClassNotFoundException : HelloWorld
0 votes
Une exception ClassNotFoundException est levée lors de la réflexion sur une classe. NoClassDefFoundError est levée lorsque vous essayez d'utiliser la classe dans un appel de méthode normal.
0 votes
Pouvez-vous montrer le code de votre classe de test ?
0 votes
La construction est-elle activée ou désactivée automatiquement ?
0 votes
La construction est automatiquement activée
0 votes
Merci beaucoup à Carlos, mon problème est résolu. Lien vers l'article de Carlos : < stackoverflow.com/questions/1052978/ >
0 votes
Merci beaucoup à Carlos, mon problème est résolu. Lien vers l'article de Carlos : stackoverflow.com/questions/1052978/
0 votes
Tout d'abord, évitez de créer une classe .java avec une méthode main dans le projet. Si elle est créée, le projet commencera son exécution à partir de la méthode main et si elle est supprimée à l'avenir, le projet ne fonctionnera pas correctement. Si cela se produit, allez dans run-> run configurations-> java-> clic droit sur la classe main-> supprimer la classe.