L'exécution de Junit & PowerMock avec Mockito par PowerMockRunner de maven
Je ne suis pas être en mesure d'exécuter Powermock par maven. Je suis le PowerMock Mockito et PowerMockRunner pour la conduite d'un test jUnit.
Voici le test:
@RunWith(PowerMockRunner.class)
@PrepareForTest( { UserLocalServiceUtil.class, ExpandoBridge.class })
public class AlertNotificationsTest {
//...
Je n'ai pas configuré anyting spécial pour exécuter le test. Mon pom références suivantes deps:
- org.mockito | mockito-tous | 1.8.0
- junit | junit | 4.6.0
- org.powermock.modules | powermock-module-junit4 | 1.3.1
- org.powermock.api | powermock-api-mockito | 1.3.1
quand je lance mvn -Dtest=AlertNotificationsTest test
mvn dit il n'y a pas de test à exécuter.
Mais si je lance la même classe de test à partir d'eclipse, tout fonctionne ok.
Je fais quelque chose de mal?
Voici mon pom.xml ci-dessous (les parties pertinentes)
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.9</version>
<classifier>jdk15</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock.modules</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock.api</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Voici la sortie de maven
mvn -Dtest=AlertNotificationsTest test
...
[INFO] Surefire report directory: C:\Devel\Java\EP_PORTAL\information-provider\target\surefi
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestSuite
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.313 sec
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] No tests were executed! (Set -DfailIfNoTests=false to ignore this error.)
[INFO] ------------------------------------------------------------------------
Note: je peux exécuter d'autres tests, je ne peux pas exécuter ce test.
Si je fais le AlertNotificationsTest
classe étendre junit.framework.TestCase
la classe est ramassé par maven, mais il semble qu'il n'obtient pas motivée par PowerMockRunner
.
Voici la sortie de l':
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
Encore une fois, ces tests s'exécutent très bien avec Eclipse.
Mise à jour j'ai trouvé un problème possible & solution de contournement. J'ai teste avec TestNG et JUnit. Si je supprime TestNG de mon pom et de migrer tous mes tests JUnit, je suis en mesure d'exécuter mon PowerMock test avec mvn test
. Il semble donc qu'il y a un problème avec maven et junit/testng combo.
J'aimerais être en mesure d'exécuter à la fois, mais Si je n'ai pas trouver un moyen je vais répondre à ma propre question.
Merci les gars&gals
junit.framework.TestCase
) a déclenché lorsque vous exécutez simplement mvn test
?Non, il n'est pas déclenché.
Alors ne même pas attendre d'elle lors de l'utilisation de
-Dtest
. Vous avez un autre problème (et il semble que vous avez trouvé la source).OriginalL'auteur Miguel Ping | 2009-11-25
Vous devez vous connecter pour publier un commentaire.
J'ai juste eu cette erreur et a travaillé à travers la solution. Mon pom.xml fichier a la suite de la dépendance:
Le problème vient du fait que mon code utilise JUnit et de la dépendance est une dépendance externe sur TestNG. Ce fut l'arrêt de mon test en cours d'exécution. Pourquoi je ne sais pas - vous avez bien un framework de test aurait été de tester un petit peu mieux!!!
De toute façon, la solution a été de briser la "pleine" dépendances à ceux requis:
Que résolu. BTW j'ai utilisé
mvn dependency:tree
de comprendre les dépendances associées.OriginalL'auteur Adam Davies
Je ne peux pas reproduire votre problème. Avec le contenu suivant dans mon pom.xml:
Et suivants de la classe de test (en ignorant les importations):
De course
mvn test -Dtest=AppTest
juste fonctionne très bien et me donner le résultat suivant:La question est donc: avez-vous une méthode annotée avec
@Test
dansAlertNotificationsTest
?Merci de poster votre
pom.xml
ensuite. Comme je l'ai dit, je ne peux pas reproduire le problème que vous décrivez. Et BTW, que faites-vous observer lorsque vous exécutezmvn test
?Avoir posté ce que vous avez demandé
OriginalL'auteur Pascal Thivent
Je suis tombé sur cette question, mais ce n'est pas un PowerMock question. Ma classe de Test a été nommé XStaticTests.java.
Quand je lance "mvn clean test", ce test ne serait pas exécutée, il a seulement fonctionné quand j'ai précisé le test à l'aide de "-Dtest=..."
La surefire documentation mentionne que, par défaut, seuls ces modèles sont recherchés :
"/Test*.java" -, tous ses sous-répertoires et tous les produits java noms de fichiers qui commencent par "Test".
"/Test.java" -, tous ses sous-répertoires et tous les produits java noms de fichiers qui se terminent par "Test".
"*/*TestCase.java" -, tous ses sous-répertoires et tous les produits java noms de fichiers qui se terminent par "TestCase".
Donc de changer le nom de la classe à celle qui se termine avec l'un de ces, sera exécuté lorsque "mvn test" est appelé, sinon le plugin surefire doit être configuré avec le nom de la classe en particulier.
OriginalL'auteur shark8me
Powermock le programme d'installation semble Ok pour moi, et les pots semble bien (en supposant que maven dépendances transitives obtenir de l'autre powermock pots - nous avons environ 6-7 après notre ivy résoudre les obtient)
Eclipse peut-être en utilisant son propre "interne" JUnit bibliothèque, ainsi, les différents comportements ?
Sont le test annoté avec org.junit.@Test ?
OriginalL'auteur Phantomwhale
Si vous regardez dans le code source du plugin Surefire, il fait un peu des trucs sournois. S'il en trouve un TestNG paquets dans le chargeur de classe, il aura la possibilité d'exécuter un TestNG Lanceur. Je n'ai pas encore vu tous les exemples de JUNit et TestNG tests en cours d'exécution bien côte à côte.
OriginalL'auteur Nelz
J'ai eu le même problème, et il m'a fallu un certain temps à comprendre. Mon installation a été en tirant dans une ancienne version de jboss.javassist, qui bizarrement était la prévention de la PowerMockRunner de travail à tous.
Il est intéressant de noter que j'ai aussi un mixte JUnit /TestNG de l'environnement. J'ai déjà essayé la solution de l'ajout de plusieurs infaillible fournisseurs, et qui ne fonctionne pas non plus (à l'aide de surefire 2.14.1). Après la mise à jour de surefire 2.17, mes deux JUnit et TestNG les tests ont commencé en cours d'exécution sans avoir besoin de déclarer infaillible fournisseurs.
Voici mon plugin section...
... et les tests pertinents deps ...
OriginalL'auteur Jeff Fairley
Il y avait un problème lors du mélange de deux TestNG & JUnit tests. Migration de tous les tests Junit résolu mon problème.
Merci les gars.
OriginalL'auteur Miguel Ping