Je sais que vous pouvez exécuter tous les tests dans une certaine classe en utilisant:
mvn test -Dtest=classname
Mais je veux exécuter une méthode individuelle et -Dtest = classname.methodname ne semble pas fonctionner.
java
unit-testing
maven-2
BillMan
la source
la source
mvn test -Dtest=classname
syntaxe.Réponses:
Pour exécuter une seule méthode de test dans Maven, vous devez fournir la commande sous la forme:
où
TestCircle
est le nom de la classe de test etxyz
est la méthode de test.Les caractères génériques fonctionnent également; à la fois dans le nom de la méthode et le nom de la classe.
Si vous testez dans un projet multi-module, spécifiez le module avec lequel le test est effectué
-pl <module-name>
.Pour les tests d'intégration, utilisez l'
it.test=...
option au lieu detest=...
:la source
-pl <module-name>
.-DfailIfNoTests=false
de sauter des projets sans test.No Tests Were Executed
se produit lorsque vous essayez d'exécuter le test à partir du projet racine et qu'il y a des modules sans tests du tout.mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Notez que "-DTest" commence par UPPER CASE 'T'.Il y a un problème avec surefire 2.12. C'est ce qui m'arrive en changeant le plugin maven-surefire de 2.12 à 2.11:
mvn test -Dtest=DesignRulesTest
mvn test -Dtest=DesignRulesTest
la source
@Category(IntegrationTest.class)
, utilisez-Dit.test=ClassName
, sinon vous obtiendrezNo tests were executed!
même avec les dernières versions du plugin.Ce que je fais avec mon TestNG, (désolé, JUnit ne le supporte pas), c'est que je peux assigner un groupe au test que je veux exécuter
Et puis exécutez simplement 'mvn -Dgroups = broken'.
la source
Exécution d'un ensemble de méthodes dans une seule classe de test Avec la version 2.7.3, vous ne pouvez exécuter que n tests dans une seule classe de test.
REMARQUE: il est pris en charge pour junit 4.x et TestNG.
Vous devez utiliser la syntaxe suivante
Vous pouvez également utiliser des modèles
À partir de surefire 2.12.1, vous pouvez sélectionner plusieurs méthodes (JUnit4X uniquement pour le moment, correctifs bienvenus)
Vérifiez ce lien sur les tests simples
la source
Vous pouvez exécuter des classes et des méthodes de test spécifiques en utilisant la syntaxe suivante:
la source
Cette commande fonctionne !!
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Notez que "-DTest" commence par UPPER CASE 'T'.la source
Le paramètre de test mentionné par tobrien vous permet de spécifier une méthode en utilisant un # avant le nom de la méthode. Cela devrait fonctionner pour JUnit et TestNG. Je ne l'ai jamais essayé, il suffit de le lire sur la page du plugin Surefire :
la source
Les nouvelles versions de JUnit contiennent le coureur Catégories: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
Mais la procédure de libération de JUnit n'est pas basée sur Maven, les utilisateurs de Maven doivent donc la mettre manuellement dans leurs référentiels.
la source
À partir de la version 2.22.1 du plugin surefire (peut-être plus tôt), vous pouvez exécuter un test unique en utilisant la propriété testnames lorsque vous utilisez testng.xml
Étant donné un testng.xml suivant
avec le pom.xml
Depuis la ligne de commande
Lectures complémentaires - Maven surefire plugin using testng
la source
Vous pouvez exécuter une seule classe de test, mais pas une seule méthode dans une classe de test. Vous utilisez le nom simple de la classe et non le nom complet de la classe. Donc, si vous avez un test dans "org.sonatype.test.MyTest" et que c'est le seul test que vous souhaitez exécuter, votre ligne de commande ressemblera à ceci:
la source
À ma connaissance, le plugin surefire ne fournit aucun moyen de le faire. Mais n'hésitez pas à ouvrir un problème :)
la source