2010-10-22 26 views

Répondre

3

Il n'y a aucun moyen (à partir de 4.8) de spécifier des catégories à partir de la ligne de commande.

1

Je peux suggérer deux approches: 1. Créez un fichier Ant avec la cible junit, puis appelez cette cible depuis la ligne de commande. 2. Implémenter une classe de suites de tests dans une classe avec la méthode main(). Donc, vous serez en mesure de l'exécuter.

5

En utilisant java exécuter JUnitCore classe (voir également here).

Les catégories sont supposées être utilisées avec des suites de test avec @RunWith(Categories.class) , @IncludeCategory et @ExcludeCategory. Je ne suis pas au courant d'un moyen dynamique d'utiliser des catégories pour exécuter des tests, mais je voudrais savoir de telle sorte qu'il existe. Vous pouvez avoir des suites de tests prédéfinies pour certaines catégories pour les exécuter.

+0

Il est possible de créer un programme de test personnalisé qui sélectionne de façon dynamique les tests à exécuter en fonction des catégories. – topchef

+0

Voici une façon d'exécuter facilement tous les tests dans une suite/catégorie (sans énumérer explicitement les tests): http://stackoverflow.com/questions/2176570/how-to-run-all-tests-belonging-to-a- certain-category-in-junit-4/2176791 # 2176791 (Faites-moi savoir si ce n'est pas ce que vous vouliez dire.) – Jonik

+0

Oui, je suis conscient de cela (http://stackoverflow.com/questions/3324623/how-can -i-run-all-junit-tests-dans-un-paquet-netbeans/3332970 # 3332970). Je pense que l'auteur veut dire exécuter des tests basés sur la catégorie en tant que paramètre. – topchef

0

Dans 4.10, nous le faisons:

mvn verify -p(your profiles) -Dit.test=(SuiteClass) 

SuiteClass est une classe vide (pas de méthodes ou des champs) qui est annotées avec @RunWith(Categories.class) et @Suite.SuiteClasses({FooIT.class, BarIT.class, ...}). FooIT et BarIT sont les tests d'intégration.