eric wilson
puedo encontrar en el Documentos expertos donde muestra cómo ejecutar:
- una sola prueba
- Todas las pruebas en una sola clase de prueba
- Todas las pruebas en clases que coinciden con un patrón particular
Pero, ¿cómo ejecutar todas las pruebas en un paquete? es posible?
Preferiría soluciones que no requieran modificar el pom.xml
o código.
Robin
También podría usar un patrón, por ejemplo
mvn '-Dtest=de.mypackage.*Test' test
ejecuta todas las pruebas en las clases del paquete de.mipaquete terminando en *Test
.
[update 2017/12/18]:
Dado que esta se convirtió en la respuesta aceptada, aquí hay más información:
- Maven usa el Complemento Maven Surefire para ejecutar pruebas.
-
La sintaxis utilizada anteriormente (nombre de paquete calificado) requiere la versión Surefire
2.19.1
¡o mas alto! Las versiones anteriores requieren el uso de expresiones de ruta, por ejemplomvn -Dtest="de/mypackage/*Test" test
-
Estoy usando comillas (` o “) para evitar que el shell realice la expansión del nombre de la ruta, Maven no requiere comillas.
-
Se puede ejecutar un solo método de prueba usando la siguiente sintaxis
mvn -Dtest=MyUnitTest#testMethod test
-
También se pueden incluir todas las pruebas de los subpaquetes, para ejecutar todas las pruebas en o debajo del paquete.
de.mypackage.sub
ejecutar:mvn -Dtest="de/mypackage/sub/**" test
o con Surefire
2.19.1
o mas altomvn -Dtest="de.mypackage.sub.**" test
Hay más posibilidades, como usar expresiones regulares, consulte la documentación oficial de ejecución de una sola prueba.
-
¡Funcionó perfectamente para mí! prueba mvn -Dtest=com.example.handler.*Prueba
– Jared Knipp
12 de abril de 2013 a las 16:06
-
Incluso puedes hacer
mvn '-Dtest=de.mypackage.**.*Test' test
para incluir subpaquetes– Ene
24 de noviembre de 2014 a las 16:49
-
En Maven 3 funciona bien cuando no uso apóstrofe (‘)
-Krzysztof Walczewski
21 de noviembre de 2017 a las 12:49
-
Cuando desee probar muchos paquetes, puede enumerarlos todos (simplemente escríbalos todos después de la coma), por ejemplo:
mvn -Dtest=com.packadmin.*Test,com.packclient.*Test test
-Krzysztof Walczewski
21 de noviembre de 2017 a las 12:51
-
Para cualquier otra persona que intente ejecutar pruebas dentro de un paquete, debe terminar con
**.*
. Ex.-Dtest="com.name.**.*"
– Deadron
12 mayo 2020 a las 21:55
dispositivo nulo
AFAIK no hay un parámetro de línea de comando para surefire: test para ejecutar pruebas en un paquete específico.
Yo uso una variable de configuración para lograr el mismo efecto. Un fragmento de mi pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.2</version>
<configuration>
<includes>
<include>**/${testGroup}/*Test.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
Ahora, si quiero ejecutar pruebas en un paquete llamado “com.example”, uso el siguiente comando:
mvn test -DtestGroup=com/example
Radadiya Nikunj
Puede tomar referencia de los siguientes escenarios:
(1) Omitir todas las ejecuciones de prueba durante la compilación de maven
mvn package -DskipTests
(2) Ejecutar todos los casos de prueba
mvn test
(3) Ejecutar grupo de prueba específico
mvn test -DincludeGroups=TestGroup1,TestGroup2
(4) Excluir grupo de prueba específico durante la ejecución
mvn test -DexcludeGroups=TestGroup3,TestGroup4
(5) Ejecutar casos de prueba de paquetes específicos
mvn test -Dtest="test.java.com.service.map.**"
(6) Ejecutar prueba específica
mvn test -Dtest=Test1,Test2
Espero que le sea más útil con una combinación diferente de ejecución.
mvn test -Dtest=com.myrootpackage.myfirstlevelpackage.*
…y si desea incluir todos los subpaquetes:
mvn test -Dtest=com.myrootpackage.myfirstlevelpackage.**.*
La versión pom.xml de la respuesta de O Badr:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<includes>
<!-- includes all tests, but not in subpackages -->
<include>**/package1/*</include>
<!-- includes all tests, AND in subpackages -->
<include>**/package2/**</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
-
Mis viejas preguntas sobre Maven obtienen visitas bastante consistentes… No estoy seguro de si debería estar feliz o triste por eso.
–Eric Wilson
16 de diciembre de 2017 a las 18:47
Cristina
Tuve el mismo problema (cómo ejecutar todas las pruebas en un paquete en particular) e intenté muchas formas, dos comandos que funcionaron fueron:
mvn -Dtest=com.package.my.package.** test
mvn -Dtest=com.package.my.package.**.* test
-
Mis viejas preguntas sobre Maven obtienen visitas bastante consistentes… No estoy seguro de si debería estar feliz o triste por eso.
–Eric Wilson
16 de diciembre de 2017 a las 18:47
Tristán
Puede que no sea la mejor respuesta, pero podría ejecutar un solo TestSuite (que es una prueba) que incluye todas las pruebas que desea en un solo paquete.
prueba esto Enlace.
– Asad Rashid
25 de julio de 2011 a las 17:30
Si está utilizando intellij, simplemente seleccione el paquete en la ventana del proyecto y haga “Ctrl+Shift+F10”. Sé que esto no está usando directamente el experto, pero espero que sea útil para alguien.
– im_bhatman
8 sep 2020 a las 14:25