81 votes

Comment exécuter tous les tests dans un package particulier avec Maven ?

Je peux trouver dans les docs Maven où il montre comment exécuter:

  1. Un seul essai
  2. Tous les tests dans une seule classe de test
  3. Tous les tests dans les classes correspondant à un modèle particulier

Mais comment exécuter tous les tests dans un package ? Est-ce possible?

Je préférerais des solutions qui ne nécessitent pas de modifier le pom.xml ou le code.

22voto

Nulldevice Points 1205

AFAIK, il n'y a pas de paramètre de ligne de commande pour surefire:test pour exécuter des tests dans un package spécifique.

J'utilise une variable de configuration pour obtenir le même effet. Un fragment de mon pom.xml :

 <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.7.2</version>
            <configuration>
                <includes>
                    <include>**/${testGroup}/*Test.java</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

Maintenant, si je veux exécuter des tests dans un package nommé "com.example", j'utilise la commande suivante :

 mvn test -DtestGroup=com/example

8voto

O.Badr Points 21
mvn test -Dtest=com.myrootpackage.myfirstlevelpackage.*

...et si vous souhaitez inclure tous les sous-packages :

 mvn test -Dtest=com.myrootpackage.myfirstlevelpackage.**.*

4voto

Andrejs Points 4164

La version pom.xml de la réponse d'O Badr :

     <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20.1</version>
                <configuration>
                    <includes>
                 <!-- includes all tests, but not in subpackages -->
                        <include>**/package1/*</include>   
                 <!-- includes all tests, AND in subpackages -->
                        <include>**/package2/**</include>
                    </includes>
                </configuration>
            </plugin>

        </plugins>
    </build>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X