2015-11-25 33 views
6

Ho un progetto multi-modulo e ho failsafe definito nel pom radice in questo modo:Perché "mvn verify" non esegue i miei test di integrazione?

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>2.19</version> 
    <configuration> 
     <includes> 
      <include>**/*IntegrationTest.java</include> 
      <include>**/*JourneyTest.java</include> 
      <include>**/*CucumberFeatureTest.java</include> 
     </includes> 
    </configuration> 
    <executions> 
     <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19</version> 
    <configuration> 
     <excludes> 
      <exclude>**/*IntegrationTest.java</exclude> 
      <exclude>**/*JourneyTest.java</exclude> 
      <exclude>**/*CucumberFeatureTest.java</exclude> 
     </excludes> 
    </configuration> 
</plugin> 

fail-safe non è definito in qualsiasi altro luogo in altri miei pon. Se eseguo mvn verify, salta i test di integrazione (esegue test di unità). Ma se corro mvn test-compile failsafe:integration-test, esegue test di integrazione.

Sono convinto che il sistema di sicurezza debba funzionare in entrambe queste situazioni. Allora perché non funziona quando digito mvn verify?

UPDATE: appena notato che questo è stato avvolto intorno a queste tag:

<build> 
    <pluginManagement> <!-- oops --> 
     <plugins> 
      <plugin> 

mi sento come questo spiega la causa, ma non sono sicuro perché unità test corrono ancora come ci si aspettarsi con mvn verify e mvn test. Perché surefire funziona in modo diverso dal failsafe in questo senso?

+0

credo infallibile è incluso nel POM standard, ma non è fail-safe. – chrylis

risposta

5

È necessario associare l'obiettivo del test di integrazione di fail safe alla fase di verifica di Maven.

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     <version>2.19</version> 
     <configuration> 
      <includes> 
       <include>**/*IntegrationTest.java</include> 
       <include>**/*JourneyTest.java</include> 
       <include>**/*CucumberFeatureTest.java</include> 
      </includes> 
     </configuration> 
     <executions> 
      <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
      </execution> 
     </executions> 
    </plugin> 
+0

Questo cambiamento non ha avuto alcun effetto sul risultato. Aggiornerò la domanda originale per includere questo –

+0

Sì, il collegamento del plug-in fail-safe all'esecuzione è la soluzione corretta. Sfortunatamente, come con molta documentazione di Maven, non è abbastanza chiaro. Questa configurazione è documentata nei documenti ufficiali di [plugin failsafe] (https://maven.apache.org/surefire/maven-failsafe-plugin/usage.html). – rdguam

0
To activate plugin for IntegrationTest, 
add declaration maven-surefire-plugin at plugins/plugin: 

    <plugins> 
      ... 
      ... 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
      </plugin> 
    </plugins> 
</build> 
Problemi correlati