¿Cuál es la diferencia entre los plugins Surefire y Failsafe de Maven?
Opciones
- Son el mismo plugin con dos nombres distintos
- Surefire ejecuta unit tests (
*Test); Failsafe ejecuta*IT(Opción correcta) - Surefire construye imágenes Docker de la aplicación
- Failsafe solo funciona en máquinas y servidores Windows
Respuesta
Surefire ejecuta los unit tests en la fase test (*Test); Failsafe ejecuta los tests de integración en integration-test/verify (*IT), para que un fallo no deje recursos a medio limpiar
Por qué
Los plugins hacen el trabajo real en cada fase de Maven.
- maven-surefire-plugin: ejecuta los unit tests durante
test(clases llamadas*Test). - maven-failsafe-plugin: ejecuta los tests de integración (clases llamadas
*IT) duranteintegration-test, y comprueba los resultados enverify. Esta separación permite a Maven apagar lo externo (como un servidor de pruebas) antes de informar del fallo.
Esta división mantiene rápido mvn test.
Recuerda
Surefire = unit tests. Failsafe = tests de integración.