unit-testing - tutorial - pruebas unitarias
Cómo ejecutar casos de prueba JUnit desde la línea de comando (11)
Me gustaría ejecutar casos de prueba de JUnit desde la línea de comandos. ¿Cómo puedo hacer esto?
Alternativamente, puede usar los siguientes métodos en la clase JunitCore http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
ejecute (con Request, Class classes y Runner) o runClasses desde su archivo java.
Asegúrese de que JUnit.jar esté en su ruta de clase, luego invoque el corredor de línea de comandos desde la consola
java org.junit.runner.JUnitCore [nombre de clase de prueba]
Referencia: junit FAQ
Con JUnit 4.12 lo siguiente no me funcionó:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Apparently , desde JUnit 4.11 en adelante, también debes incluir hamcrest-core.jar
en tu classpath:
java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore [test class name]
En realidad, también puede hacer que la prueba Junit sea un Jar ejecutable y llamar al jar ejecutable como java -jar
En windows es
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[nombre de la clase de prueba sin la extensión .class]
por ejemplo: c:/>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
y así sucesivamente, si uno tiene más de una clase de prueba.
-cp significa ruta de clase y el punto (.) representa la ruta de clase existente, mientras que el punto y coma (;) agrega el jar adicional dado a la ruta de clase, como en el ejemplo anterior junit-4.8.2 ahora está disponible en la ruta de clase para ejecutar la clase JUnitCore que Aquí hemos utilizado para ejecutar nuestras clases de prueba.
La declaración de la línea de comandos anterior le ayuda a ejecutar las pruebas junit (versión 4+) desde el símbolo del sistema (es decir, MSDos).
Nota: JUnitCore es una fachada para ejecutar pruebas de junit, esta fachada se incluye en 4+ versiones de junit.
La respuesta que dio @lzap es una buena solución. Sin embargo, me gustaría añadir que debería agregar. a la ruta de clases, para que su directorio actual no se quede fuera, lo que hace que sus propias clases se queden fuera. Esto me ha pasado en algunas plataformas. Entonces una versión actualizada para JUnit 4.x sería:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Para JUnit 5.x es:
java -jar junit-platform-console-standalone-<version>.jar <Options>
Encuentre un breve resumen en .com/a/52373592/1431016 y todos los detalles en https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
Para JUnit 4.X es realmente:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Pero si está utilizando JUnit 3.X, tenga en cuenta que el nombre de la clase es diferente:
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
Es posible que deba agregar más JAR o directorios con sus archivos de clase a la ruta de clase y separarlos con punto y coma (Windows) o dos puntos (UNIX / Linux). Depende de su entorno.
Editar: He añadido el directorio actual como ejemplo. Depende de su entorno y de cómo construya su aplicación (puede ser bin / o build / o incluso my_application.jar, etc.). Nota: Java 6+ admite globs en classpath, puedes hacer:
java -cp lib/*.jar:/usr/share/java/junit.jar ...
Espero eso ayude. Escribir pruebas! :-)
Personalmente usaría el corredor Maven surefire JUnit para hacer eso.
Si el proyecto se basa en hormigas, debería poder hacer algo como esto desde la consola:
ant test
Si esto no funciona, pero aún así su proyecto está basado en hormigas, puede ejecutar ant -p
para enumerar los objetivos principales del proyecto.
Si su proyecto está basado en Maven, puede ejecutar todos los métodos de prueba desde CustomTest de clase de prueba que pertenece al módulo ''my-module'' usando el siguiente comando:
mvn clean test -pl :my-module -Dtest=CustomTest
O ejecute solo 1 método de prueba myMethod desde la clase de prueba CustomTest usando el siguiente comando:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
Para esta capacidad, necesita Maven Surefire Plugin v.2.7.3 + y Junit 4. Más detalles están aquí: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
Camino de Maven
Si usa Maven, puede ejecutar el siguiente comando para ejecutar todos sus casos de prueba:
mvn clean test
O puede ejecutar una prueba particular como se muestra a continuación
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
Si desea ver el seguimiento de la pila (si existe) en la consola en lugar de los archivos de informe en la carpeta target / surefire-reports, establezca la propiedad de usuario surefire.useFile en false. Por ejemplo:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
Camino gradle
Si usa Gradle, puede ejecutar el siguiente comando para ejecutar todos sus casos de prueba:
gradle test
O puede ejecutar una prueba particular como se muestra a continuación
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
Si desea más información, puede considerar opciones como --stacktrace, o --info, o --debug.
Por ejemplo, cuando ejecuta Gradle con el nivel de registro de información - info, le mostrará el resultado de cada prueba mientras se están ejecutando. Si hay alguna excepción, le mostrará el seguimiento de la pila, señalando cuál es el problema.
gradle test --info
Si desea ver los resultados generales de las pruebas, puede abrir el informe en el navegador, por ejemplo (Ábralo con Google Chrome en Ubuntu):
google-chrome build/reports/tests/index.html
Camino de hormigas
Una vez que haya configurado su archivo de compilación Ant, build.xml, puede ejecutar sus casos de prueba JUnit desde la línea de comandos como se muestra a continuación:
ant -f build.xml <Your JUnit test target name>
Puede seguir el siguiente enlace para obtener más información sobre cómo configurar las pruebas de JUnit en el archivo de compilación de Ant: https://ant.apache.org/manual/Tasks/junit.html
Forma normal
Si no usa Maven, o Gradle o Ant, puede seguir el siguiente camino:
En primer lugar, necesita compilar sus casos de prueba. Por ejemplo (en Linux):
javac -d /absolute/path/for/compiled/classes -cp /absolute/path/to/junit-4.12.jar /absolute/path/to/TestClassName.java
A continuación, ejecute sus casos de prueba. Por ejemplo:
java -cp /absolute/path/for/compiled/classes:/absolute/path/to/junit-4.12.jar:/absolute/path/to/hamcrest-core-1.3.jar org.junit.runner.JUnitCore your.package.TestClassName