Je voudrais exécuter des cas de test JUnit à partir de la ligne de commande. Comment puis-je faire ceci?
333
Je voudrais exécuter des cas de test JUnit à partir de la ligne de commande. Comment puis-je faire ceci?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
travaillé pour moi. Notez le point final - c'est important!Réponses:
Pour JUnit 5.x, c'est:
Trouvez un bref résumé sur https://stackoverflow.com/a/52373592/1431016 et tous les détails sur https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
Pour JUnit 4.X, c'est vraiment:
Mais si vous utilisez JUnit 3.X, notez que le nom de la classe est différent:
Vous devrez peut-être ajouter d'autres fichiers JAR ou répertoires avec vos fichiers de classe au chemin de classe et les séparer avec des points-virgules (Windows) ou des deux-points (UNIX / Linux). Cela dépend de votre environnement.
Edit: j'ai ajouté le répertoire actuel comme exemple. Cela dépend de votre environnement et de la façon dont vous construisez votre application (peut être bin / ou build / ou même my_application.jar, etc.). Remarque Java 6+ prend en charge les globes dans classpath, vous pouvez faire:
J'espère que ça aide. Écrivez des tests! :-)
la source
Chemin Maven
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 au lieu des fichiers de rapport dans le dossier target \ surefire-reports, définissez la propriété utilisateur surefire.useFile sur false. Par exemple:
Façon Gradle
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 d'enregistrement d'informations --info, il vous montrera le résultat de chaque test pendant leur exécution. S'il y a une exception, il vous montrera la trace de la pile, indiquant le problème.
Si vous souhaitez voir les résultats globaux du test, vous pouvez par exemple ouvrir le rapport dans le navigateur (ouvrez-le à l'aide de Google Chrome dans Ubuntu):
Fourmi façon
Une fois que vous avez configuré votre fichier de génération Ant build.xml, vous pouvez exécuter vos cas de test JUnit à partir de la ligne de commande comme ci-dessous:
Vous pouvez suivre le lien ci-dessous pour en savoir plus sur la configuration des tests JUnit dans le fichier de génération Ant: https://ant.apache.org/manual/Tasks/junit.html
Voie normale
Si vous n'utilisez pas Maven, Gradle ou Ant, vous pouvez suivre la procédure suivante:
Tout d'abord, vous devez compiler vos cas de test. Par exemple (sous Linux):
Exécutez ensuite vos cas de test. Par exemple:
la source
La réponse donnée par @lzap est une bonne solution. Cependant, je voudrais ajouter que vous devriez ajouter. dans le chemin d'accès aux classes, afin que votre répertoire actuel ne soit pas ignoré, ce qui entraînera la suppression de vos propres classes. Cela m'est arrivé sur certaines plateformes. Une version mise à jour pour JUnit 4.x serait donc:
la source
Assurez-vous que JUnit.jar se trouve dans votre chemin de classe, puis appelez le programme d'exécution de ligne de commande à partir de la console
Référence: junit FAQ
la source
Avec JUnit 4.12, ce qui suit ne fonctionnait pas pour moi:
Apparemment , à partir de JUnit 4.11, vous devriez également inclure
hamcrest-core.jar
dans votre chemin de classe:la source
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
Dans les fenêtres, c'est
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[nom de la classe de test sans extension .class]par exemple:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
et ainsi de suite, si l'on a plus d'une classe de test.-cp représente le chemin de classe et le point (.) représente le chemin de classe existant tandis que le point-virgule (;) ajoute le pot supplémentaire donné au chemin de classe, comme dans l'exemple ci-dessus junit-4.8.2 est maintenant disponible dans classpath pour exécuter la classe JUnitCore qui ici, nous avons utilisé pour exécuter nos classes de test.
L'instruction de ligne de commande ci-dessus vous aide à exécuter des tests junit (version 4+) à partir de l'invite de commande (c'est-à-dire MSDos).
Remarque: JUnitCore est une façade pour exécuter des tests de junit, cette façade est incluse dans 4+ versions de junit.
la source
En fait, vous pouvez également faire du test Junit un pot exécutable et appeler le pot exécutable en tant que java -jar
la source
Si votre projet est basé sur Maven, vous pouvez exécuter toutes les méthodes de test de la classe de test CustomTest qui appartient au module 'my-module' en utilisant la commande suivante:
Ou exécutez une seule méthode de test myMethod à partir de la classe de test CustomTest à l'aide de la commande suivante:
Pour cette capacité, vous avez besoin du plug-in Maven Surefire v.2.7.3 + et Junit 4. Plus de détails sont ici: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
la source
Personnellement, j'utiliserais le runner Maven surefire JUnit pour le faire.
la source
Vous pouvez également utiliser les méthodes suivantes dans la classe JunitCore http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
exécutez (avec Request, Class classes et Runner) ou runClasses à partir de votre fichier java.
la source
Si votre projet est basé sur une fourmi, vous devriez pouvoir faire quelque chose comme ça depuis la console:
Si cela ne fonctionne pas, mais que votre projet est basé sur des fourmis, vous pouvez exécuter
ant -p
pour répertorier les principales cibles du projet.la source