2010-12-08 17 views

Répondre

16

Bien sûr, pas de problème:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <excludes> 
     <!-- classes that include the name Dao --> 
     <exclude>**/*Dao*.java</exclude> 
     <!-- classes in a package whose last segment is named dao --> 
     <exclude>**/dao/*.java</exclude> 
     </excludes> 
    </configuration> 
</plugin> 

Référence:

(Les exclut ne peuvent pas être configurés via la ligne de commande, donc si tu veux activer ce comportement sous condition, vous devrez définir un profil et l'activer sur la ligne de commande)

+2

6 ans plus tard et surefire.excludes ne fonctionne toujours pas sur la ligne de commande. –

37

Permettez-moi d'étendre la réponse de Sean. Voici ce que vous définissez dans pom.xml:

<properties> 
    <exclude.tests>nothing-to-exclude</exclude.tests> 
</properties> 
<profiles> 
    <profile> 
    <id>fast</id> 
    <properties> 
     <exclude.tests>**/*Dao*.java</exclude.tests> 
    </properties> 
    </profile> 
</profiles> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <excludes> 
    <exclude>${exclude.tests}</exclude> 
    </excludes> 
    </configuration> 
</plugin> 

Puis en CI vous les démarrer:

mvn -Pfast test 

Voilà.

1

il est possible d'exclure les tests en utilisant la ligne de commande; en utilisant ! pour exclure.

note: Je ne suis pas sûr mais peut-être besoin de la version 2.19.1 ou ultérieure de surefire pour fonctionner.

exemples:

ce ne sera pas exécuter TestHCatLoaderEncryption

mvn install '-Dtest=!TestHCatLoaderEncryption' 

excluent un paquet:

mvn install '-Dtest=!org.apache.hadoop.**' 

peuvent être combinés avec des filtres positifs ainsi; le test suivant va exécuter 0 test:

mvn install '-Dtest=Test*CatLoaderEncryption,!TestHCatLoaderEncryption'