2010-12-08 65 views

回答

16

當然,沒問題:

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

參考:

(該不包括不能被經由命令行配置,所以如果你想 有條件地打開此行爲,您將不得不定義一個配置文件並在命令行上激活該配置文件)

+2

6年後,surefire.excludes仍然不起作用的命令行。 – 2017-02-02 01:16:54

37

讓我擴展Sean的答案。這就是你在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> 

然後在CI開始他們是這樣的:

mvn -Pfast test 

就是這樣。

1

可以使用命令行排除測試;使用!來排除。

注意:我不確定但可能需要2.19.1或更高版本的surefire才能正常工作。

例子:

此將不運行TestHCatLoaderEncryption

mvn install '-Dtest=!TestHCatLoaderEncryption' 

排除包:

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

可以與正濾波器以及被組合;以下將運行0測試:

mvn install '-Dtest=Test*CatLoaderEncryption,!TestHCatLoaderEncryption' 
相關問題