tutorial para descargar descarga maven maven-2

para - maven: ¿Cómo puedo omitir la prueba en algunos proyectos a través de las opciones de línea de comando?



maven download (4)

En mi proyecto de maven tengo varios módulos. ¿Es posible desactivar la prueba de unidad en funcionamiento para algunos módulos a través de opciones de línea de comando?

Mi proyecto toma alrededor de 15 minutos para ejecutar todas las pruebas unitarias. Me gustaría acelerar la construcción general ejecutando solo las pruebas unitarias en el módulo en el que estoy trabajando. No quiero entrar y editar cada pom.xml individual para lograr esto.

He intentado una solución que se describe aquí: ¿Puedo ejecutar un grupo de prueba testng específico a través de maven? Sin embargo, el resultado es una gran cantidad de fallas de prueba en los módulos que quiero omitir. ¿Supongo que ''grupo'' no es el mismo concepto de módulo?


... y si desea pasar el parámetro al complemento de lanzamiento maven en Hudson / Jenkins, debe usar -Darguments=-DskipTests para que funcione.


Encontré una forma de excluir en la línea de comando:

# Exclude one test class, by using the explanation mark (!) mvn test -Dtest=!LegacyTest # Exclude one test method mvn verify -Dtest=!LegacyTest#testFoo # Exclude two test methods mvn verify -Dtest=!LegacyTest#testFoo+testBar # Exclude a package with a wildcard (*) mvn test -Dtest=!com.mycompany.app.Legacy*

Esto es de: https://blog.jdriven.com/2017/10/run-one-or-exclude-one-test-with-maven/


Para activar y desactivar las pruebas unitarias para un proyecto completo, utilice la capacidad de Maven Surefire Plugin de omitir las pruebas . Existe un inconveniente al usar skipTests desde la línea de comando. En un escenario de compilación de varios módulos, esto inhabilitaría todas las pruebas en todos los módulos.

Si necesita un control de grano más fino para ejecutar un subconjunto de pruebas para un módulo, investigue utilizando las capacidades de inclusión y exclusión de pruebas de Maven Surefire Plugin .

Para permitir anulaciones de línea de comandos, haga uso de las propiedades POM al configurar el complemento Surefire. Tomemos como ejemplo el siguiente segmento POM:

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.9</version> <configuration> <excludes> <exclude>${someModule.test.excludes}</exclude> </excludes> <includes> <include>${someModule.test.includes}</include> </includes> </configuration> </plugin> </plugins> </build> <properties> <someModule.skip.tests>false</someModule.skip.tests> <skipTests>${someModule.skip.tests}</skipTests> <someModule.test.includes>**/*Test.java</someModule.test.includes> <someModule.test.excludes>**/*Test.java.bogus</someModule.test.excludes> </properties>

Con un POM como el anterior, puede ejecutar pruebas de varias maneras.

  1. Ejecute todas las pruebas (la configuración anterior incluye todos los archivos fuente de prueba ** / * Test.java)

mvn test

  1. Omite todas las pruebas en todos los módulos

mvn -DskipTests=true test

  1. Omite todas las pruebas para un módulo particular

mvn -DsomeModule.skip.tests=true test

  1. Solo ejecute ciertas pruebas para un módulo en particular (este ejemplo incluye todos los archivos fuente de prueba ** / * IncludeTest.java)

mvn -DsomeModule.test.includes="**/*IncludeTest.java" test

  1. Excluir ciertas pruebas para un módulo en particular (este ejemplo excluye todos los archivos fuente ** / * ExcludeTest.java)

mvn -DsomeModule.test.excludes="**/*ExcludeTest.java" test


Si quieres usar los perfiles de Maven:

Es posible que desee hacer que funcione haciendo algo como esto:

No sé si hay una opción de línea de comando compatible que haga lo mismo.

También puede intentar usar propiedades de entorno directamente, algo como en esta página de documento:

es decir algo como:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12</version> <configuration> <skipTests>${moduleA.skipTests}</skipTests> </configuration> </plugin>

luego usa mvn -DmoduleA.skipTests=false test para probar ese módulo.