Maven salta pruebas

Resuelto Prabhjot asked hace 10 años • 0 respuestas

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=truetambié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.

Prabhjot avatar Jul 14 '14 05:07 Prabhjot
Aceptado

Como notó, -Dmaven.test.skip=trueomite 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-jarmó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.skiptest-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.

Mureinik avatar May 16 '2015 12:05 Mureinik

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
gilwo avatar Aug 30 '2016 13:08 gilwo

Hay una diferencia entre cada parámetro.

  • La -DskipTestsfase de omitir la ejecución de pruebas significa que al final de este proceso tendrás tus pruebas compiladas.

  • La -Dmaven.test.skip=trueomisión de la fase de compilación y ejecución de pruebas.

Como el parámetro -Dmaven.test.skip=trueomite 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

Dennys Fredericci avatar Jan 23 '2019 15:01 Dennys Fredericci