Pourquoi ne pas “mvn vérifier” exécuter mes tests d'intégration?

J'ai un multi-projet de module et j'ai failsafe défini dans la racine pom comme ceci:

<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>

Failsafe n'est pas définie n'importe où ailleurs dans mes autres pdm. Si je lance mvn verify, il passe les tests d'intégration (il exécute les tests unitaires). Mais si je lance mvn test-compile failsafe:integration-test, il exécute des tests d'intégration.

Je suis sous l'hypothèse que le failsafe est censé fonctionner dans ces deux situations. Alors pourquoi ne pas s'exécuter lorsque je tape mvn verify?

Mise à JOUR: Juste remarqué que c'était enroulée autour de ces tags:

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

Je sens que c'est ce qui explique la cause, mais je ne suis pas sûr pourquoi unité tests de toujours courir comme vous vous attendez à mvn verify et mvn test. Pourquoi ne infaillible de travail différemment de failsafe à cet égard?

  • Je crois Surefire est incluse dans la norme POM mais Failsafe ne l'est pas.