Maven salta pruebas
Estoy usando Maven 2.2.1 y para construir mi proyecto utilicé este comando
mvn clean install -Dmaven.test.skip=true
Sin embargo, la compilación falló porque no pudo encontrar uno de los artefactos. Sin embargo, cuando usé:
mvn clean install -DskipTests
todo funcionó bien.
Hasta ahora he estado pensando que estos 2 comandos son equivalentes. Sin embargo, este enlace parece sugerir que -Dmaven.test.skip=true
también omite la compilación de los casos de prueba.
Sin embargo, eso todavía no me explica por qué un comando funciona y otro no. Estaría agradecido si alguien me explicara esto.
Como notó, -Dmaven.test.skip=true
omite la compilación de las pruebas. Más concretamente, se salta la construcción de los artefactos de prueba. Una práctica común para proyectos grandes es compartir utilidades de prueba y clases base entre módulos del mismo proyecto.
Esto se logra haciendo que un módulo requiera un test-jar
módulo previamente creado:
<dependency>
<groupId>org.myproject.mygroup</groupId>
<artifactId>common</artifactId>
<version>1.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
Si se especifica -Dmaven.test.skip=true
(o simplemente ), los s no se compilan y cualquier módulo que dependa de ellos fallará en su compilación.-Dmaven.test.skip
test-jar
Por el contrario, cuando usa -DskipTests
, Maven no ejecuta las pruebas, pero las compila y construye el test-jar, dejándolo disponible para los módulos posteriores.
Tenía cierta interdependencia con las pruebas para poder construir el paquete.
El siguiente comando logra anular la necesidad del artefacto de prueba para completar el objetivo:
mvn -DskipTests=true package
Y también puedes usar el siguiente comando: -
mvn clean install -Dmaven.test.skip=true
Hay una diferencia entre cada parámetro.
La
-DskipTests
fase de omitir la ejecución de pruebas significa que al final de este proceso tendrás tus pruebas compiladas.La
-Dmaven.test.skip=true
omisión de la fase de compilación y ejecución de pruebas.
Como el parámetro -Dmaven.test.skip=true
omite la compilación, no tiene el artefacto de pruebas.
Para obtener más información, simplemente lea la documentación de Surfire: http://maven.apache.org/plugins-archives/maven-surefire-plugin-2.12.4/examples/skipping-test.html