22

He leído El plugin Maven Failsafe está diseñado específicamente para ejecutar pruebas de integración. Actualmente estoy trabajando en un proyecto de varios módulos y las pruebas de integración están en su propio módulo separado, escrito en TestNg y ejecutado usando el plugin surefire. No tenemos conflictos con las pruebas unitarias ya que solo las pruebas de integración se ejecutan en la fase de prueba en ese módulo. Y para configurar el entorno antes de las pruebas y limpiarlo después de ejecutar las pruebas, se usan las anotaciones @BeforeSuite @ AfterSuite TestNg. Por lo tanto, no es necesario utilizar la fase de prueba previa a la integración, la fase de prueba de integración, la fase de prueba posterior a la integración utilizada por el complemento FailSafe.Beneficios del plugin Maven FailSafe

  • ¿Hay más beneficios que me estoy perdiendo, al no usar el complemento Failsafe?
  • ¿Hay mejores maneras de hacer mi requerimiento actual usando el plugin Failsafe?
  • ¿Puedo hacer que mi servidor se inicie, apague, descomprima archivos, etc. en las fases de prueba previa a la integración y prueba de integración sin escribir un plugin maven?

Respuesta

15

Si ya tiene su propia configuración de prueba/extracción en sus suites, que por lo que parece, no hay mucho que pueda obtener del complemento FailSafe.

El complemento FailSafe es útil en situaciones donde la configuración de su sistema bajo prueba es costosa o toma mucho tiempo, como iniciar un servlet o un sistema distribuido. La forma en que el complemento FailSafe es útil en estas situaciones es que puede configurar este entorno en la fase pre-integration-test. Este complemento tampoco detiene la ejecución de la compilación Maven cuando falla una prueba, lo que le permite limpiar todos sus artefactos durante la fase post-integration-test, después de lo cual comprueba el estado de sus pruebas y pasa o falla la compilación en consecuencia durante la fase verify.

19

Failsafe tiene una gran característica contra Surefire: cuando falla una prueba, no se cancela inmediatamente. En su lugar, permite que se ejecute el código de limpieza (que generalmente elimina el servidor Jetty).