Cómo ejecutar casos de prueba JUnit desde la línea de comando

Resuelto KK. asked hace 14 años • 0 respuestas

Me gustaría ejecutar casos de prueba JUnit desde la línea de comando. ¿Cómo puedo hacer esto?

KK. avatar Feb 10 '10 15:02 KK.
Aceptado

Para JUnit 5.x es:

java -jar junit-platform-console-standalone-<version>.jar <Options>

Encuentre un breve resumen en https://stackoverflow.com/a/52373592/1431016 y detalles completos 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 necesite agregar más archivos JAR o directorios con sus archivos de clase al classpath y separarlos con punto y coma (Windows) o dos puntos (UNIX/Linux). Depende de tu entorno.

Editar: agregué 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.). Tenga en cuenta que Java 6+ admite globos en classpath, puede hacer:

java -cp lib/*.jar:/usr/share/java/junit.jar ...

¡Escribe pruebas! :-)

lzap avatar Aug 24 '2011 08:08 lzap

manera experta

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 corresponde) en la consola en lugar de los archivos de informes en la carpeta target\surefire-reports, establezca la propiedad del usuario surefire.useFile en falso. 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 obtener más información, puede considerar opciones como --stacktrace, --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 ejecuta. Si hay alguna excepción, le mostrará el seguimiento de la pila y le indicará cuál es el problema.

gradle test --info

Si desea ver los resultados generales de la prueba, puede abrir el informe en el navegador, por ejemplo (ábralo usando Google Chrome en Ubuntu):

google-chrome build/reports/tests/index.html

Camino de la hormiga

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 comando como se muestra a continuación:

ant -f build.xml <Your JUnit test target name>

Puede seguir el enlace a continuación para leer más sobre cómo configurar pruebas JUnit en el archivo de compilación Ant: https://ant.apache.org/manual/Tasks/junit.html

manera normal

Si no usas Maven, Gradle o Ant, puedes seguir la siguiente manera:

En primer lugar, debe 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

Luego 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
Yuci avatar Oct 08 '2016 12:10 Yuci

La respuesta que dio @lzap es una buena solución. Sin embargo, me gustaría agregar que usted debería agregar. a la ruta de clase, para que su directorio actual no quede fuera, lo que provocará que sus propias clases 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]
rand_acs avatar Aug 15 '2012 08:08 rand_acs

Asegúrese de que JUnit.jar esté en su classpath, luego invoque el ejecutor de línea de comando desde la consola

java org.junit.runner.JUnitCore [nombre de clase de prueba]

Referencia: preguntas frecuentes de junit

Gishu avatar Feb 10 '2010 08:02 Gishu

Con JUnit 4.12 lo siguiente no funcionó para mí:

java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]

Aparentemente , desde JUnit 4.11 en adelante también deberías incluir hamcrest-core.jaren tu classpath:

java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore [test class name]
Stefan van den Akker avatar Jun 13 '2015 13:06 Stefan van den Akker