Maven/Surefire ne trouve pas de tests à exécuter
Aussi loin que je peux dire, le test de l'emplacement des fichiers est correct.
Quand je lance "mvn test", il trouve quatre classes nommées SomethingTest (ils sont situés dans le "test" de dossier).
Cependant, il ignore tout de la jUnit tests (jUnit 4, annotée avec @Test).
Comment corriger cela?
Modifier - c'est probablly liées à une mauvaise version de jUnit. Je vois cette lors de l'exécution de "mvn -X"
[DEBUG] Retrieving parent-POM: org.codehaus.plexus:plexus:pom:1.0.4 for project: org.codehaus.plexus:plexus-containers:pom:1.0.3 from the repository.
[DEBUG] org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:runtime (selected for runtime)
[DEBUG] junit:junit:jar:3.8.1:runtime (selected for runtime)
[DEBUG] org.codehaus.plexus:plexus-utils:jar:1.0.4:runtime (removed - nearer found: 1.4.1)
[DEBUG] classworlds:classworlds:jar:1.1-alpha-2:runtime (selected for runtime)
Même si ma première dépendance à la racine pom est sur jUnit 4.8.1, pour quelque raison jUnit 3.8.1 est inclus.
Edit 2 - ok, cela ne semble pas être la réponse. Le Test de chemin de classe comprend la bonne jUnit (4) et de mes classes de test.
Modifier 3 - j'avais les classes de test nommé SomethingTester. Quand je l'ai changé pour SomethingTest, il a travaillé. J'ai vérifié l'inclure des motifs pour Infaillible, et en effet il n'était pas configuré pour attraper quelque Chose Testeur. Doh.
avez-vous voir Modifier 3? Mes modèles pour la détection des tests ont été tout simplement pas correctement configuré.
oh, je vois, alors vous devriez ajouter que comme réponse et de l'accepter
J'ai ajouté cela comme une réponse, je ne peux pas l'accepter encore (je déteste ce fait - que je dois attendre 2 jours).
J'ai trouvé la bonne réponse à cette question. stackoverflow.com/questions/6178583/...
OriginalL'auteur ripper234 | 2010-11-13
Vous devez vous connecter pour publier un commentaire.
C'est peut-être la question:
mvn -X serait d'imprimer un tas de ces, de sorte que vous pouvez essayer de voir si c'est quelque chose de l'au-dessus - comme ne pas utiliser le bon JUnit version (par exemple, lorsque vous créez à partir du démarrage de l'artefact, je pense que la valeur par défaut est 3.8.1), ayant TestNG dans le classpath avant de JUnit.
Edit: j'ai juste essayé ce dans un projet simple et la classe donnée dans le lien ci-dessus et il a bien fonctionné. J'ai utilisé junit version 4.8, qui est la seule dépendance dans mon projet. Juste pour confirmer, vous l'annotation des méthodes d'essai avec @org.junit.Test et il y a quelques org.junit.Affirmer.assertXXX énoncés dans ces méthodes, correct?
Edit 2: Pour changer de junit pour une autre version, utilisez ceci:
Edit 3: Vous devriez avoir quelque chose comme ça dans le test classpath:
Edit 4: OK, je viens de créer un projet de test avec maven de démarrage rapide de l'artefact, l'ajout de deux modules (également créé avec quickstart artefact) à l'intérieur, a ajouté la source/cible version de Java et junit:junit:4.8 dépendance à la mère pom. J'ai changé un seul des tests de JUnit4 (l'autre est par défaut JUnit3, c'est ce démarrage rapide génère),
mvn clean test
du dossier parent a très bien fonctionné.C'est le plus probable d'un projet d'installation de question - pouvez-vous vérifier que votre projet est câblé correctement (c'est à dire des modules de point à la société mère, le groupe/artefact/versions du parent/enfant, les projets sont corrects). La seule autre chose qui me vient à l'esprit est le nettoyage de votre repository maven (au moins org/apache/maven), mais je doute que ce serait utile.
Il pourrait être sage de tester sur un simple projet.
Juste ajouter junit:junit:4.8 comme une dépendance à - dire comme si l'on voulait que la version. J'ai édité le post.
Merci, à la prochaine mise à jour de question.
Et oui, en matière de @org.junit.Test
Pour confirmer, votre test de classes sont en
src/test/java
dossier? Pouvez-vous vérifier qu'il existe .les fichiers de classe danstarget/test-classes
?OriginalL'auteur icyrock.com
Pour finir icyrock.com'à la question. Si il n'y a pas de classes de test compilé pour cible/test-classes, alors vérifiez votre pom fichier et assurez-vous que l'emballage n'est pas un 'pom'.
OriginalL'auteur Raymond