2012-09-05 15 views
11

Quiero usar maven-failsafe-plugin para ejecutar algunas pruebas de integración. Si alguna prueba falla, quiero que Maven falle la compilación y NO CONSTRUYA ÉXITO.maven-failsafe-plugin ¿Fallas y BUILD SUCCESS?

Tests run: 103, Failures: 1, Errors: 0, Skipped: 26 
[INFO] BUILD SUCCESS* 


cómo puedo configurarlo, que no construye el éxito es?

Mi complemento a prueba de fallos se configura como:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>${failsafe.version}</version> 
    <configuration> 
     <systemProperties> 
      <CI_INTEGRATION_OVERRIDE_PATH>${basedir}/..</CI_INTEGRATION_OVERRIDE_PATH> 
     </systemProperties> 
     <includes> 
      <include>**/integration/**/*.java</include> 
     </includes> 
     <excludes> 
      <exclude>**/integration/**/*TestSuite.java</exclude> 
     </excludes> 
    </configuration> 
    <executions> 
     <execution> 
      <id>integration-test</id> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
+0

¿Qué versión de maven-failsafe-plugin usa? ¿Qué versión de Maven? ¿Cómo llamaste a mvn para ejecutar pruebas de integración? – khmarbaise

+2

Vea [este hilo de correo] (http://maven.40175.n5.nabble.com/Failing-a-build-with-maven-failsafe-plugin-td3199308.html) en "Maven - Users". –

+0

MAVEN CALL: mvn clean install -P jars failsafe: integración-test -e 2.12 MAVEN 3.16 – Fawi

Respuesta

1

solución.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <skip>true</skip> 
    </configuration> 
    <executions> 
    <execution> 
     <id>unit-test</id> 
     <phase>test</phase> 
     <goals> 
     <goal>test</goal> 
     </goals> 
     <configuration> 
     <skip>false</skip> 
     <excludes> 
      <exclude>**/*IntegrationTest.java</exclude> 
     </excludes> 
     </configuration> 
     </execution> 
     <execution> 
     <id>integration-test</id> 
     <phase>integration-test</phase> 
     <goals> 
      <goal>test</goal> 
     </goals> 
     <configuration> 
      <skip>false</skip> 
      <enableAssertions>false</enableAssertions> 
      <includes> 
      <include>**/*IntegrationTest.java</include> 
      </includes> 
      <systemPropertyVariables> 
      <integration>${integration}</integration> 
      </systemPropertyVariables> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 
+6

Esta respuesta reemplaza el complemento de failsafe con el complemento surefire. – Andrew

1

Puesto que usted está ejecutando mvn clean install tanto los integration-test y verify fases deben estar ejecutando. De acuerdo con los documentos del complemento de failsafe, los objetivos failsafe:integration-test y failsafe:verify están vinculados a esas fases, por lo que no creo que se requiera la llamada adicional al failsafe:integration-test.

Dicho esto, sin embargo, no estoy seguro de que confíe en la documentación del complemento failsafe. I answered a similar question para alguien a principios de este año. Resultó que tenía que vincular explícitamente cada objetivo a la fase correcta y luego el failsafe funcionó como se esperaba. Puede valer la pena intentarlo.

+0

He encontrado una solución, puedo usar maven-surefire-plugin para mis pruebas de integración. – Fawi

7

Como señaló Andrew, la solución correcta es usar el failsafe según lo previsto. El objetivo de la prueba de integración está diseñado específicamente para no fallar la compilación. Si quiere fallar la compilación, llame al mvn verify o mvn failsafe:verify

+1

Estoy de acuerdo con su respuesta. El objetivo de it-test es por diseño no falla. "Mis objetivos eran diferentes y quería hacer una pieza obstinada de software y prefería la noción de convención a la configuración". citado por Jason van Zyl en la historia del artículo de maven. Siempre es bueno seguir las convenciones en lugar de piratear para hacer cosas para las que no está diseñado. – NewUser

+1

A menudo me parece que las intenciones de los autores de Maven parecen contradecir directamente la forma en que una persona cuerda podría intentar usarla. – cbmanica

Cuestiones relacionadas