2010-04-27 3 views
2

Je passe d'utiliser seulement Intellij pour gérer mon système de construction à Intellij/Maven. Lorsque je lance mon test d'intégration "MapSimulationTest" avec mon propre coureur via @RunWith (KmlParameterizedRunner.class) Intellij gère correctement la situation, le répertoire spécifié par la propriété système "user.dir" est analysé pour les fichiers .kml et chacun est testé.@RunWith fait que Maven ignore mon test en cours d'exécution avec mon propre coureur

Le problème semble être que Surefire ignore @RunWith, des suggestions?

Voici ce que le journal de maven montre ...

------------------------------ ------------------------- TESTS ----------------------- -------------------------------- Exécution com.tqicorp.guru.MapSimulationTest Tests exécutés: 0, Echecs: 0 Erreurs: 0, Ignoré: 0, le temps écoulé: 0,061 sec Vous pouvez déjà être le faire

+1

Je commence à me demander si surefire ignore complètement @RunWith. – benstpierre

+0

Je souffre du même problème. J'utilise @RunWith (MockitoJunitRunner.class) – jilen

+0

mdma: Notez que 'mvn site' ne fonctionne plus dans maven 3.0. Voir http://stackoverflow.com/questions/4584346/how-do-i-generate-site-with-mvn-sitesite –

Répondre

1

, mais cela peut se produire si votre dépendance Maven utilise ancienne version de JUnit (3.x) au lieu de junit 4.x où ces annotations sont respectées. Vérifiez votre pom.xml pour voir si la bonne version de JUnit est le articfact

+0

Ce n'est pas le cas, j'ai exclu junit et junit-dep dans les bibliothèques qui ont une ancienne version de JUnit en tant que dépendance transitoire (ie: jmock). – benstpierre

2

J'utilise et surefire @RunWith avec le coureur de test Spring, et il fonctionne très bien avec Maven 2.2.1.

Pour identifier le problème, vous pouvez essayer de créer un test Junit simple à l'aide de l'annotation @Test plutôt que de l'ancienne méthode testXXX. Exécutez "test mvn" et vérifiez si votre test est en cours d'exécution. Si c'est le cas, cela exclura toute possibilité d'un vieux junit sur votre chemin. Si ce n'est pas en cours d'exécution, exécutez "mvn site", et recherchez le rapport de dépendances pour junit, et vérifiez la version. C'est incroyable à quel point les versions non désirées peuvent facilement se glisser!

1

Essayez de vérifier que vous utilisez la dernière version de maven-surefire-plugin; J'ai été brûlé dans le passé par des bogues avec mes surefire uasge jusqu'à ce que j'ai relized ces bugs avaient été corrigés dans une version plus récente du plugin et j'ai simplement dû mettre à jour.

1

Cela peut arriver si vous avez une dépendance à TestNG. Supprimez la dépendance et Maven recherchera les annotations @ org.junit.Test dans vos classes, si la dépendance TestNG est présente, alors Maven recherche l'annotation @ org.testng.annotations.Test.

+0

Merci beaucoup! Je sais que c'est 4 ans plus tard, mais cela a juste corrigé un problème que j'ai eu pendant des heures. –

Questions connexes