Encontré que la forma más sencilla de omitir solo las pruebas de seguro seguro es configurar el seguro seguro ( pero no a prueba de fallas ) de la siguiente manera:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<!-- skips surefire tests without skipping failsafe tests.
Property value seems to magically default to false -->
<skipTests>${skip.surefire.tests}</skipTests>
</configuration>
</plugin>
Esto le permite ejecutar mvn verify -Dskip.surefire.tests
y solo seguro, no a prueba de fallas, se omitirán las pruebas; también ejecutará todas las demás fases necesarias, incluidas la preintegración y la posintegración, y también ejecutará el verify
objetivo que se requiere para fallar realmente su compilación de Maven si sus pruebas de integración fallan.
Tenga en cuenta que esto redefine la propiedad utilizada para especificar que las pruebas se deben omitir, por lo que si proporciona el canónico -DskipTests=true
, surefire lo ignorará pero a prueba de fallas lo respetará, lo que puede ser inesperado, especialmente si tiene compilaciones / usuarios existentes que ya especifican ese indicador. Una solución alternativa simple parece ser skip.surefire.tests
el valor predeterminado skipTests
en su <properties>
sección del pom:
<properties>
<skip.surefire.tests>${skipTests}</skip.surefire.tests>
</properties>
Si lo necesita, podría proporcionar un parámetro análogo llamado skip.failsafe.tests
a prueba de fallas, sin embargo, no lo he encontrado necesario, porque las pruebas unitarias generalmente se ejecutan en una fase anterior, y si quiero ejecutar pruebas unitarias pero no pruebas de integración, ejecutaría la test
fase en lugar de la verify
fase. ¡Tus experiencias pueden variar!
Estas skip.(surefire|failsafe).tests
propiedades probablemente deberían integrarse en el propio código seguro / a prueba de fallas, pero no estoy seguro de cuánto violaría el ethos "son exactamente el mismo complemento, excepto por 1 pequeña diferencia".
maven.test.skip
oskipTests
?