El complemento de failsafe no se ejecutará en un proyecto, sino que se ejecutará en otro, ¿por qué?

Esto me está volviendo loco. El complemento de Maven failsafe no se ejecutará en mi proyecto. Si ejecuto mvn verify solo se ejecute surefire. Si mvn failsafe:verify que falla con el siguiente error:

 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Simulation Experiment Server 1.0 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-failsafe-plugin:2.11:verify (default-cli) @ experiment-server --- [INFO] Failsafe report directory: C:\IdeaProjects\experiment_server\target\failsafe-reports [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.551s [INFO] Finished at: Fri Mar 30 11:24:58 GMT-06:00 2012 [INFO] Final Memory: 5M/15M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.11:verify (default-cli) on project experiment-server: C:\IdeaProjects\experiment_server\target\failsafe-reports\failsafe-summary.xml (The system cannot find the path specified) -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

Se queja de no encontrar failsafe-summary.xml . Pero esto debería ser creado por el complemento. Y el plugin funciona bien (y crea el archivo failsafe-summary.xml si ejecuto ejecutar el maravilloso ejemplo de ejemplo Arquillian de Antonio Goncalves.

Así que copié la información exacta del complemento que usa Antonio, y aún no se ejecutará en mi proyecto. He modelado mi POM para que sea exactamente como el suyo (excepto sin un pom padre) – algo debe estar yendo mal, simplemente no sé qué. ¿Por qué ejecutará failsafe en su proyecto pero no el mío?

Esta es mi entrada failsafe pom.xml, que se toma directamente de la suya, y es la misma que en el sitio de usos a prueba de fallas):

  org.apache.maven.plugins maven-failsafe-plugin ${version.maven.failsafe.plugin}      integration-test verify     

Gracias por cualquier ayuda, esto me está volviendo loco.

ACTUALIZACIÓN De acuerdo, parece que he obtenido el problema cannot find failsafe-summary.xml solucionar el problema cannot find failsafe-summary.xml . Cambio mi directorio de experiment_server a experiment-server . Supongo que eso arruina el failsafe.

Pero sigo teniendo problemas para ejecutar mvn verify desde el comando mvn verify o mvn integration-test . Ambos comandos llaman seguro a fuego en lugar de a prueba de fallas. Ahora puedo ejecutar failsafe directamente usando el comando: mvn failsafe:integration-test , pero no debe ejecutarse a prueba de mvn verify con mvn verify ? Mi mvn help:effective-pom muestra que el failsafe está ahí, entonces ese no es el problema … ¿Alguna idea?

Eche un vistazo a los documentos a prueba de errores para los nombres de failsafe que failsafe espera de manera predeterminada:

  **/IT*.java **/*IT.java **/*ITCase.java  

¿Sus pruebas son nombradas siguiendo uno de estos patrones? Si no, intente definir el elemento en la configuración del complemento. O cambie su (s) nombre (s) de prueba para que se ajusten al patrón predeterminado.


De acuerdo, ahora que hemos verificado los nombres de la clase de prueba, normalmente cuando agrego ejecuciones a la configuración del complemento lo hago de la siguiente manera:

  org.apache.maven.plugins maven-failsafe-plugin ${version.maven.failsafe.plugin}     failsafe-integration-tests integration-test  integration-test    failsafe-verify verify  verify     

Esto vincula explícitamente los objectives del complemento de failsafe que desea ejecutar con las fases correctas del ciclo de vida de comstackción. Creo que el plugin surefire está ligado a la fase del ciclo de vida de test por defecto (para jar, war, y ejb de todos modos), pero nada está obligado a integration-test o verify integration-test .

Aquí compartiré mis 2 centavos. Tuve el mismo problema y la solución anterior no resolvió mi problema.

Tenía maven-failsafe-plugin encapsulado en la etiqueta de pluginManagement . Me di cuenta de moverlo a la etiqueta de complementos en su lugar cuando vi este documento en el esquema de maven 4.0.0:

La información de plugin por defecto estará disponible para referencia en proyectos derivados de este. Esta configuración de complemento no se resolverá ni vinculará al ciclo de vida a menos que se haga referencia a esta. Cualquier configuración local para un plugin dado anulará la definición completa del plugin aquí.

Espero que esta información adicional. resuelve el problema de más personas como yo.

Para mí funcionó solo después de que agregué el “predeterminado” incluye.

   org.apache.maven.plugins maven-failsafe-plugin 2.15   **/IT*.java **/*IT.java **/*ITCase.java **/IntegrationTest*.java     failsafe-integration-tests integration-test  integration-test    failsafe-verify verify  verify     

Si está ejecutando la versión 2.12.2 del complemento de failsafe, esto es normal. Cambiar a una versión anterior. Parece que 2.13 no está disponible todavía.

Enlace Jira