74 votes

Eclipse/Maven : JUnit teste ne pas compilé lors de l’exécution de leur

Je suis en train de travailler sur un projet à l'aide de Maven et Eclipse (plugin m2eclipse). J'ai des problèmes avec JUnit tests:

Parfois, lors de l'exécution d'entre eux au sein d'Eclipse, elles ne seront pas compilés, mais les vieux fichiers de classe sont utilisés à la place. Quand je supprime les fichiers de classe, je reçois ClassNotFoundExceptions dans Eclipse. J'ai ensuite recompiler manuellement à l'aide de mvn test-compile ou d'autres objectifs.

J'ai aussi remarqué que la catégorie fichiers de tests sont parfois mis dans l' classes sous-répertoire au lieu de test-classes.

Je ne peux vraiment pas comprendre ce qui est faux.

JUnit fichiers java sont dans l' src/main/java et sont correctement nommés (*Test.java).

Dois-je compiler et exécuter toujours via Maven? Pourquoi ne pas Eclipse compiler les fichiers quand je veux l'exécuter? (Fait intéressant, parfois il le fait. Parfois, tout fonctionne parfaitement.)

89voto

apa64 Points 463

J'ai eu le même problème avec Eclipse STS (Printemps de développement de la variante), m2e et JUnit. La solution a été de définir le dossier de sortie pour src/test/java de target/test-classes:

  1. Clic droit sur l' src/test/java le dossier dans l'Explorateur de packages
  2. Sélectionnez Build Path -> Configurer Le Dossier De Sortie
  3. Entrez target/test-classes, cliquez sur OK

Maintenant, les changements dans les classes de test sont compilés correctement et vous devriez être en mesure d'exécuter des tests JUnit dans Eclipse.

Le problème est que Eclipse compile les tests unitaires pour le dossier de sortie par défaut target/classes alors que JUnit plugin correctement essaie de les exécuter à partir d' test-classes.

Il y a quelques doublons à cette question:

6voto

Roosh Points 238

En plus de la réponse ci-dessous

  1. Cliquez-droit sur le répertoire src/test/java dossier
  2. Sélectionnez Build Path -> Configurer Le Dossier De Sortie
  3. Entrez cible/test-classes, cliquez sur OK

vous devriez vérifier pour s'assurer que votre constructeur est correctement paramétré par un clic droit sur votre projet et allez à Propriétés -> Builder. Si vous voyez que votre constructeur est manquant, vous devez en installer une. Dans mon cas, le projet maven avait un AspectJ dépendance et quand j'ai utilisé le Maven plugin Eclipse pour construire mon projet Eclipse, il était à la recherche d'un AspectJ constructeur par défaut. J'ai installé le AspectJ des outils de développement et il a résolu le problème.

Espérons que cette aide!

2voto

dunni Points 8810

Et un autre point: les classes de test JUnit doivent être dans src / test / java, pas src / main / java, sinon elles ne sont pas correctement détectées par Maven en tant que classes de test et elles seraient incluses dans le fichier jar empaqueté et non dans le fichier jar de test. .

0voto

James Scriven Points 2027

Eclipse n'est pas rien attendre d'autre à coucher avec les fichiers de classe. Il suppose que si vous n'avez pas editted le fichier dans eclipse, il n'a pas changé et n'a pas besoin de compiler. Je pense que le problème découle de eclipse et maven partage d'un répertoire de sortie. J'ai souvent vu cela si mon mvn l'échec de la construction, il aura supprimé les fichiers de classe dans le cadre de la nettoyer, mais pas compilé de nouveaux. Je pense que la meilleure solution serait d'avoir séparé construire dirs pour mvn eclipse, mais je n'ai jamais regarder dans cette.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X