Est-il un moyen de sauter d'un seul test dans maven?
Je voudrais sauter un seul test en lançant mvn install
.
Est-il un moyen de le faire ?
- maven.apache.org/surefire/maven-surefire-plugin/examples/...
- Si vous utilisez le failsafe plugin:
mvn clean install -Dit.test=\!TestToSkip.*
Vous devez vous connecter pour publier un commentaire.
Avec junit 4, je rajoute un
@Ignore
annotation lorsque je veux le faire. Ce serait travailler pour vous, sauf si vous voulez que parfois ignorer le test, ou seulement l'ignorer lors de la génération s'effectue à partir de maven. Si c'est le cas, alors je voudrais demander "Pourquoi?"Tests devrait être cohérents, ils devrait portable, et ils devrait toujours passer. Si un test spécifique est problématique, je voudrais envisager de re-écrire, de le retirer entièrement, ou en les déplaçant vers un autre test de la suite ou du projet.
Vous pouvez spécifier un motif d'exclusion de
-Dtest
option en préfixant avec un!
(point d'exclamation). E. g.,Trouvé dans ici et vérifié pour fonctionner. E. g., J'ai pu sauter cette feuilletée Jenkins test à l'aide d':
mvn -Dtest="\!CronFlakyTest,Cron*Test" install
mais qui tourne encore l'feuilletée testIl est normal que les tests d'intégration doivent être exclues, mais les tests unitaires doivent être inclus.
Pour atteindre cet je suggère de nommer tous les tests d'intégration avec un postfix IntegrationTest (par ex. AbcIntegrationTest.java).
et puis dans votre maven build mettre les éléments suivants:
Lorsque vous créez avec ce tous les tests d'intégration wil être exclus,
mais tous les autres tests (test d'Unité par exemple) sont exécutés. Parfait 🙂
Pour plus d'info sur exclusing et notamment les tests pendant l'exécution des tests, lire
http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html
PS À exlude un seul test, il vous suffit explicitement nom dans la liste d'exclusion. Facile.
Ont un coup d'oeil à cette solution, à l'aide de
@Category
annotationsLequel vous exécutez ensuite à l'aide d'une suite de tests:
Vous pouvez également inclure (
groups
) ou exclure (excludedGroups
) ces tests avec maven utilisant par exemple:je pense que cela devrait fonctionner si vous utilisez cette commande:
(pour changer pom.xml et de test de la classe à la suivante et l'utilisation mvn install)
pom.xml
test-catégorie:
Si vous souhaitez utiliser la CLI pour exclure un seul test, vous devez utiliser le
-Dtest
et-Dit.test
drapeaux.Être prudent pour réinitialiser les valeurs par défaut. Lorsque vous utilisez le
!
la notation de toutes les valeurs par défaut sont effacés et vous devez les mettre à dos. Normal tests exécutés parsurefire
vous devez ajouter*Test, Test*, *Tests, *TestCase
, tandis que pour les tests d'intégration exécuté parfailsafe
vous devez ajouterIT*, *IT, *ITCase
.Vous pouvez trouver plus d'infos ici https://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html (normal tests)
et ici https://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html (tests d'intégration)
-Dit.test='!ITsometestIT, IT*, *IT, *ITCase'
Complète
mvn
de commande pourrait être celle-ci:mvn -e -B -Dtest='!unitTestABC, *Test, Test*, *Tests, *TestCase' -Dit.test='!ITintegrationTestABCIT, IT*, *IT, *ITCase' -DfailIfNoTests=false clean install
N'oubliez pas d'utiliser
'
et PAS"
. Lors de l'utilisation de guillemets tout!
à l'intérieur d'eux seront évaluées parbash
.Rappelez-vous aussi que les tests d'intégration ne sont pas exécutées lorsqu'
mvn test
. Avecmvn verify
seulement les tests d'intégration sera exécutée, et pas de tests unitaires