2011-02-28 4 views
4

Je sais qu'il est possible d'exécuter une classe de test spécifique avec -Dtest=MyTest. Mais est-il possible d'exécuter un test spécifique au sein de cette classe?Maven Surefire: exécuter un test unitaire

I.e. si MyTest définit testFoo() et testBar(), existe-t-il un moyen de spécifier que seulement testfoo() doit être exécuté? Je suis conscient qu'il est trivialement facile de le faire dans un IDE, mais j'ai parfois besoin d'exécuter des tests sur la ligne de commande sur un autre serveur.

Répondre

1

Ne pensez pas que c'est disponible. Vous pouvez contourner ce problème en transmettant certaines propriétés système & ignorez l'exécution des tests basés sur la valeur de la propriété. Cependant, il ne semble pas ajouter une grande valeur ajoutée. Il y a aussi TestNG qui offre des fonctionnalités supplémentaires.

http://maven.apache.org/plugins/maven-surefire-plugin/examples/testng.html

5

De Running a Single Test Using Maven Surefire Plugin

Avec la version 2.7.3, vous pouvez exécuter seulement n tests dans une seule classe d'essai.

REMARQUE: il est pris en charge pour junit 4.x et TestNG.

Vous devez utiliser la syntaxe suivante

mvn -Dtest=TestCircle#mytest test

Vous pouvez utiliser des modèles trop

mvn -Dtest=TestCircle#test* test

0

Pour exécuter un test à la fois, exécutez la commande mvn test

mvn -Dtest=MyUnitlTest test 

Pour exécuter un test à la fois et une méthode spécifique de celui-ci:

mvn -Dtest=MyUnitTest#method test 

où MyUnitTest est le nom de votre test et #method est le nom de votre méthode.

Exécuter des tests avec surefire:

mvn surefire:test 
Questions connexes