2012-09-05 18 views
11

Desidero utilizzare il plugin maven-failsafe per eseguire alcuni test di integrazione. Se un test fallisce, voglio che Maven fallisca la build e NON COSTRUISCA SUCCESSO.errori Maven-failsafe-plugin e BUILD SUCCESS?

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


come posso configurarlo, che non costruire il successo è?

mio plugin di fail-safe è configurato come:

<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

Quale versione di Maven-failsafe-plugin usi? Quale versione di Maven? Come hai chiamato MVN per eseguire i test di integrazione? – khmarbaise

+2

Vedere [questo thread di posta] (http://maven.40175.n5.nabble.com/Failing-a-build-with-maven-failsafe-plugin-td3199308.html) su "Maven - Users". –

+0

MAVEN CALL: mvn clean install -P jacks failsafe: integration-test -e 2.12 MAVEN 3.16 – Fawi

risposta

1

soluzione.

<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

Questa risposta sta sostituendo il plugin failsafe con il plugin surefire. – Andrew

1

Dal momento che si sta eseguendo mvn clean install entrambe le integration-test e verify fasi dovrebbero essere in esecuzione. Secondo i documenti del plugin failsafe, gli obiettivi failsafe:integration-test e failsafe:verify sono associati a tali fasi, quindi non credo che sia necessaria la chiamata aggiuntiva a failsafe:integration-test.

Detto questo, tuttavia, non sono sicuro di fidarmi della documentazione dei plug-in failsafe. I answered a similar question per qualcuno all'inizio di quest'anno. Si è scoperto che doveva vincolare esplicitamente ciascun obiettivo alla fase corretta e quindi il failsafe funzionava come previsto. Potrebbe valere la pena di un colpo.

+0

Ho trovato una soluzione, posso usare maven-surefire-plugin per i miei test di integrazione. – Fawi

7

Come ha sottolineato Andrew, la soluzione corretta è utilizzare failsafe come previsto. L'obiettivo del test di integrazione è specificamente progettato per non fallire la build. Se vuoi fallire la build, chiama mvn verify o mvn failsafe:verify

+1

Sono d'accordo con la tua risposta. L'obiettivo di questo test è di progettazione non fallisce. "I miei obiettivi erano diversi e volevo fare un pezzo di software supponente e ho preferito la nozione di convenzione sulla configurazione." come citato da Jason van Zyl nella storia di un articolo di Maven. È sempre bene seguire le convenzioni piuttosto che hackerare per fare cose per le quali non è stato progettato. – NewUser

+1

Spesso scopro che gli intenti degli autori di Maven sembrano contraddire direttamente il modo in cui una persona sana di mente potrebbe tentare di usarla. – cbmanica

Problemi correlati