¿Existe una forma sencilla de no crear las clases de prueba?
mvn clean install -Dmaven.test.skip=true
¿Existe una forma sencilla de no crear las clases de prueba?
mvn clean install -Dmaven.test.skip=true
Respuestas:
De acuerdo con la documentación sobre el complemento Surefire de Maven, -Dmaven.test.skip
debería omitir tanto la compilación como la ejecución de las pruebas. Por el contrario, -DskipTests
simplemente omite la ejecución de la prueba : las pruebas aún se compilan.
skipTests
simplemente omite la ejecución de las pruebas y maven.text.skip
omite la compilación y ejecución de las pruebas. Siempre tengo que buscar cuál es cuál.
Solo para ser explícitamente claro:
skipTests
compilará cualquier cosa en el <testSourceDirectory>
, pero no lo ejecutará .
maven.test.skip
se NO recopilar todas las pruebas, pero ejecutará las pruebas compiladas que hicieron su camino hacia el <testOutputDirectory>
.
Entonces, el comportamiento de los 2 anteriores es opuesto. Solo quería señalar que maven.test.skip
no se salta la compilación Y la ejecución si los archivos de prueba se descomprimen / copian / etc. en <testOutputDirectory>
.
Además, dependiendo de la versión de Maven que use, también hay una maven.test.skip.exec=true
que también omite la ejecución de la prueba similar a skipTests.
mvn clean package -DskipTests=true && mvn test -Dmaven.test.skip=true
compilará las pruebas (debido a la primera ejecución del paquete) pero no las ejecutará en el segundo comando. Suponiendo directorios estándar, target/test-classes
contendrán todas las pruebas después, pero no se han ejecutado.
Ejecuta una fase que no incluye test-compile
, por ejemplo compile
.
mvn clean compile
Encontré una solución alternativa en otra pregunta , que en realidad anula la ejecución de un complemento al agregar el siguiente fragmento en su pom.xml de forma predeterminada:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
Esto parece funcionar, pero definitivamente no deshabilita la fase, pero deshabilita las acciones predeterminadas que define un complemento en una fase específica.