Maven Tests unitaires de test et d'intégration

UT = Unité de Tests
C' = Tests d'Intégration. Tous mes test d'Intégration des classes annotées avec @Catégorie(IntegrationTest.class)

Mon objectif est:

mvn clean install => fonctionne UT et pas

mvn clean install -DskipTests=true => pas de tests sont exécutés

mvn clean deploy => fonctionne UT et pas

mvn clean test => fonctionne UT et pas

mvn clean verify => fonctionne UT et IL

mvn clean integration-test => fonctionne et UT ne sont pas exécutées

mvn clean install deploy => fonctionne UT et pas

pom propriétés:

<junit.version>4.12</junit.version>
<surefire-plugin.version>2.18.1</surefire-plugin.version>
<failsafe-plugin.version>2.18.1</failsafe-plugin.version>
  1. Compilateur:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <compilerArgument>-Xlint:all</compilerArgument>
            <showWarnings>true</showWarnings>
            <showDeprecation>true</showDeprecation>
        </configuration>
    </plugin>
  2. Tests Unitaires:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <configuration>
            <excludedGroups>com.xpto.IntegrationTest</excludedGroups>
        </configuration>
    </plugin>
  3. Tests D'Intégration:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${failsafe-plugin.version}</version>
        <configuration>
            <groups>com.xpto.IntegrationTest</groups>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>integration-test</goal>
                </goals>
                <configuration>
                    <includes>
                        <include>**/*.class</include>
                    </includes>
                </configuration>
            </execution>                
        </executions>              
    </plugin>        

Mes résultats sont:

mvn clean install => OK

mvn clean install -DskipTests=true => OK

mvn clean deploy => fonctionne UT et pas

mvn clean test => OK

mvn clean verify => NOK ... seulement UT sont exécutés, mais IL doit également être exécutée

mvn clean integration-test => NOK ... UT sont exécutées et ne doit pas et ne sont pas exécutés, mais doit être exécutée

mvn clean install deploy => OK

source d'informationauteur Leonel