Comment faire pour exécuter les cas de test JUnit depuis la ligne de commande
Je voudrais que JUnit cas de test à partir de la ligne de commande.
Comment puis-je faire cela?
- similaires android junit question: stackoverflow.com/q/11144466/611007
- android docs: l'exécution de tests sur un périphérique ou un émulateur (en ligne de commande). (via andreea.sandu)
- Réponse pour JUnit 5 à stackoverflow.com/a/52373592/1431016
Vous devez vous connecter pour publier un commentaire.
Pour JUnit 5.x c'est:
Trouver un bref résumé à https://stackoverflow.com/a/52373592/1431016 et plein de détails à https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
Pour JUnit 4.X il est vraiment:
Mais si vous utilisez JUnit 3.X note le nom de la classe est différente:
Vous pourriez avoir besoin d'ajouter plus de Pots ou des répertoires avec vos fichiers de classe dans le classpath et séparée que par des points-virgules (Windows) ou des deux-points (UNIX/Linux). Cela dépend de votre environnement.
Edit: j'ai ajouté répertoire courant comme un exemple. Dépend de votre environnement et de la façon dont vous construisez votre application (peut être bin/ou créer/ou même my_application.jar etc.). Remarque Java 6+ prend en charge les boules dans le classpath, vous pouvez le faire:
Espère que cela aide. Écrire des tests! 🙂
org.junit.runner.JUnitCore
que votre classe principale, qui fera le travail si vos tests sont écrits dans JUnit3 de style ou JUnit4 de style.Maven façon
Si vous utilisez Maven, vous pouvez exécuter la commande suivante pour exécuter tous vos cas de test:
Ou vous pouvez exécuter un test particulier comme ci-dessous
Si vous souhaitez voir la trace de la pile (le cas échéant) dans la console à la place des fichiers de rapport à la cible\surefire-dossier des rapports, définissez la propriété de l'utilisateur infaillible.useFile à false. Par exemple:
Gradle façon
Si vous utilisez Gradle, vous pouvez exécuter la commande suivante pour exécuter tous vos cas de test:
Ou vous pouvez exécuter un test particulier comme ci-dessous
Si vous souhaitez plus d'informations, vous pouvez envisager des options telles que: stacktrace, ou --info, ou --debug.
Par exemple, lorsque vous exécutez Gradle avec le niveau de journalisation info --info, il va vous montrer le résultat de chaque test alors qu'ils sont en cours d'exécution. Si il n'y a aucune exception, il va vous montrer la trace de la pile, en soulignant que le problème est.
Si vous souhaitez voir l'ensemble des résultats de test, vous pouvez ouvrir le rapport dans le navigateur, par exemple (l'Ouvrir avec Google Chrome sous Ubuntu):
Ant façon
Une fois que vous configurez votre fichier Ant build.xml, vous pouvez exécuter votre JUnit cas de test à partir de la ligne de commande comme ci-dessous:
Vous pouvez suivre le lien ci-dessous pour en savoir plus sur la façon de configurer JUnit tests dans le fichier Ant:
https://ant.apache.org/manual/Tasks/junit.html
Façon normale
Si vous n'utilisez pas de Maven, ou Gradle ou Ant, vous pouvez suivre la manière suivante:
Tout d'abord, vous avez besoin de compiler vos cas de test. Par exemple (sous Linux):
Puis exécutez vos cas de test. Par exemple:
La réponse de @lzap a donné est une bonne solution. Cependant, je voudrais ajouter que vous devez ajouter . pour le chemin de classe, de sorte que votre répertoire courant n'est pas en reste, résultant dans vos propres classes à être laissé de côté. Ce qui m'est arrivé sur certaines plates-formes. Si une version mise à jour pour JUnit 4.x serait:
De s'assurer que JUnit.jar est dans votre classpath, puis appeler la ligne de commande de coureur à partir de la console
Référence: junit FAQ
Avec JUnit 4.12 le suivant ne fonctionne pas pour moi:
Apparemment, JUnit 4.11, vous devez également inclure
hamcrest-core.jar
dans votre classpath:java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
De windows, il est
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[test nom de la classe sans .extension de classe]par exemple:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
et ainsi de suite, si on a plus d'un test de classes.-cp est synonyme de chemin de classe et le point (.) représente le chemin de classe existant tout point-virgule (;) ajoute supplémentaires donné jar au classpath , comme dans l'exemple ci-dessus junit-4.8.2 est maintenant disponible dans le classpath pour exécuter JUnitCore de classe que nous avons ici utilisé pour exécuter nos classes de test.
Ci-dessus instruction de ligne de commande vous aide à exécuter junit (version 4+) des tests à partir de l'invite de commande(i-e Ms-dos).
Remarque: JUnitCore est une façade pour exécuter des tests junit, cette façade est inclus dans le 4+ versions de junit.
En fait, vous pouvez aussi faire le test Junit un runnable Jar et appeler la runnable jar comme
java-jar
Si votre projet Maven, vous pouvez exécuter tous les tests-les méthodes de test de la classe CustomTest qui appartient au module "mon-module' l'aide de la commande suivante:
Ou d'exécuter seulement 1 essai-méthode myMethod de test de la classe CustomTest à l'aide de la commande suivante:
Pour cette capacité, vous devez Maven Plugin Surefire v. 2.7.3+ et Junit 4.
Plus de détails ici: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
Personnellement, je voudrais utiliser le Maven infaillible runner JUnit pour le faire.
Si votre projet est ant en fonction, alors vous devriez être en mesure de faire quelque chose comme ceci à partir de la console:
Si cela ne fonctionne pas, mais encore votre projet est ant, vous pouvez exécuter
ant -p
de répertorier les principaux objectifs du projet.Alternativement, vous pouvez utiliser les méthodes suivantes dans JunitCore classe http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
run (avec la Demande , de la Classe et des classes d'Runner) ou runClasses à partir de votre fichier java.