Je ne suis pas capable de lancer PowerMock à travers Maven. Je suis le PowerMock Mockito et PowerMockRunner pour avoir conduit un test Junit.
Voici le test: P>
Running TestSuite [ERROR]: No test suite found. Nothing to run Tests run: 4, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 1.053 sec <<< FAILURE! Results : Failed tests: testSingleEventNotification(pt.estradasportugal.traffic.services.events.AlertNotificationsTest) testTwoEventNotification(pt.estradasportugal.traffic.services.events.AlertNotificationsTest) Tests run: 4, Failures: 2, Errors: 0, Skipped: 0
Lorsque je exécute suis-je en train de faire quelque chose de mal? P> Voici mon pom.xml ci-dessous (les parties correspondantes) voici la sortie de Maven P> mvn -dtest = test d'alternotificationSest estimé p>
blockQuote> note strong>: Je peux exécuter d'autres tests, je ne peux tout simplement pas exécuter ce test.
Si je fais le Voici la sortie de celle-ci: p> à nouveau, ces tests fonctionnent parfaitement avec Eclipse. P> Mise à jour forte> J'ai trouvé un problème possible et une solution de contournement. J'ai des tests avec testng et Junit. Si je supprime le test de mon POM et migrez tous mes tests vers Junit, je suis capable d'exécuter mon test PowerMock avec J'aimerais pouvoir courir les deux, mais si je ne trouve pas de façon, je vais y aller et répondre à mon propre question.
Merci Guys & Gals P> P> mvn -dtest = ALTERNOTIFICATIONS Test duest code> MVN dit qu'il n'y a pas de test à exécuter.
Mais si j'exécute la même classe d'essai d'Eclipse, tout fonctionne bien. P>
ALANTINTIFICATIONSESTESTTESTTESTTESTESTTESTESTESTESTESTESTESTESTESTES EXTENDRE
JUNIT.FRAMEWORK.ESCASCASE CODE> La classe est prise en charge par Maven, mais il semble qu'il ne soit pas conduit par
PowerMockRunner code>. p>
MVN Test code>. Il semble donc qu'il y ait un problème avec Maven et le combo Junit / Testng. P>
7 Réponses :
La configuration PowerMock est conviviale pour moi et les pots semblent bien (en supposant que les dépendances transitives maven reçoivent les autres pots PowerMock - nous avons environ 6-7 après que notre ivy résolve les obtient) P>
Eclipse peut utiliser sa propre bibliothèque Junit "interne", ainsi que les différents comportements? P>
Le test est-il annoté avec org.junit. @ Test? P>
Je ne peux pas reproduire votre problème. Avec le contenu suivant de mon pom.xml: et la classe de test suivante (sauter les importations): p> exécutant donc la question est la suivante: avez-vous une méthode annotée avec Test MVN -Dtest = aptest code> fonctionne simplement bien et donnez-moi la sortie suivante: p>
@Test code> dans
ALANTINOTIFICATIONSESTESTESTESTESTEST CODE>? P> P>
Veuillez poster votre pom.xml code> alors. Comme je l'ai dit, je ne peux pas reproduire le comportement que vous décrivez. Et BTW, que respectez-vous lorsque vous exécutez un test
MVN code>?
Ont posté ce que vous avez demandé
Il y a eu un problème lors du mélange à la fois des tests de test et de junit. Migration de tous les tests vers Junit résolu mon problème. Merci gars. P>
Si vous regardez dans la source du plug-in Surefire, il fait des choses sournoises. S'il trouve des packages de test de test dans le chargeur de classes, il choisira d'exécuter un TestRunner TestRunner. Je n'ai encore vu aucun exemples de tests Junit et de test de Testng fonctionnant bien côte à côte. P>
Cela est possible en utilisant deux exécutions.
Je suis également apparu à ce sujet, mais ce n'est pas un problème PowerMock. Ma classe de test a été nommée xstaticestest.java. P>
Lorsque j'exécute "MVN Clean Test", ce test ne serait pas exécuté, il ne fonctionnait que lorsque j'ai spécifié le test à l'aide de "-Dtest = ..." p>
La documentation Surefire mentionne que, par défaut, seuls ces modèles sont recherchés:
" /test*.java" - inclut tous ses sous-répertoires et tous les noms de fichiers Java commençant par "Test".
" strong> / test.java" - inclut tous ses sous-répertoires et tous les noms de fichiers Java qui se terminent par "Test".
" em> * / * testcase.java" - inclut tous ses sous-répertoires et tous les noms de fichiers Java qui se terminent par "TestCase". P>
Modification donc le nom de classe en une qui se termine par l'une d'entre elles, fonctionnera lorsque "MVN Test" est appelé, sinon le plug-in Surefire doit être configuré avec le nom de la classe spécifiquement. P>
Je viens d'avoir cette erreur et j'ai travaillé à travers la solution. Mon fichier pom.xml avait la dépendance suivante:
<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> <version>1.5</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-core</artifactId> <version>1.5</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>1.5</version> <scope>test</scope> </dependency>
Cette solution a fonctionné pour moi. J'utilisais la version PowerMock 1.6.4 avec Mockito 1.9.5.
J'ai eu le même problème et cela m'a fallu un certain temps pour comprendre. Ma configuration tirait dans une ancienne version de JBoss.JavAssist, qui empêchait curieusement le PowerMockRunner de travailler du tout.
On vaut la peine de noter que j'ai aussi un environnement juniit / test mixte. J'ai déjà essayé la solution d'ajout de plusieurs fournisseurs de Surefire et que cela ne fonctionnait pas non plus (à l'aide de Surefire 2.14.1). Après la mise à niveau vers Surefire 2.17, mes tests de junit et de test à la fois commencés à fonctionner sans avoir à déclarer des fournisseurs Surefire. P>
Voici ma section de plugin ... P>
<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>1.9.5</version> <scope>test</scope> </dependency> <!-- PowerMock versions are compatible with specific Mockito versions. https://code.google.com/p/powermock/wiki/MockitoUsage13 --> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>1.5.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> <version>1.5.4</version> <scope>test</scope> </dependency> <!-- without this PowerMock tests don't run in maven --> <dependency> <groupId>jboss</groupId> <artifactId>javassist</artifactId> <version>3.8.0.GA</version> <scope>test</scope> </dependency>
Est le test (ne pas s'étendant
junit.framework.tescale code>) déclenché lorsque vous venez d'exécuter
test MVN code>?
Non, il n'est pas déclenché.
Ensuite, ne vous attendez pas même à ce que ce soit lorsque vous utilisez
-dtest code>. Vous avez un autre problème (et il semble que vous ayez trouvé la source).