2014-03-26 558 views
1

我在不同環境的maven中有許多配置文件,我想跳過一些這些配置文件的測試。是否有可能跳過一些測試課程?我一直在尋找,只發現屬性skipTests,但它跳過所有的測試。在Maven中跳過一些測試

回答

1

是的。你基本上有兩種選擇:

  • 使用-Dtest =!testToExclude,!test2ToExclude(這些測試需要noot來限定)。 見Surefire-Plugin

指定此參數可以通過文件名來運行單個測試,覆蓋includes/excludes參數。您在此處指定的每個模式將用於創建格式爲**/${test}.java的包含模式,因此您只需鍵入「-Dtest=MyTest」即可運行名爲「foo/MyTest.java」的單個測試。以!!爲前綴的測試模式將被排除在外。 此參數將覆蓋includes/excludes參數和TestNG suiteXmlFiles參數。從2.7.3開始,您可以通過添加#myMethod#my*ethod來執行測試中有限數量的方法。例如,「-Dtest=MyTest#myMethod」。這對於junit 4.x和testNg是受支持的。

  • 你也可以,如果你想排除許多測試使用excludeFile參數。

更新:

這個答案假定要動態排除在命令行測試。如果你希望你的測試總是被排除在特定的配置文件中,Aleksandr的awswer是正確的。

2

您可以配置Maven Surefire Plugin以基於ant樣式路徑表達式或正則表達式排除一些測試。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.17</version> 
    <configuration> 
     <excludes> 
     <exclude>**/SomeTest.java</exclude> 
     </excludes> 
    </configuration> 
</plugin> 

爲了使用正則表達式,語法是%regex[expr]其中expr是實際的表達式。還要注意,正則表達式匹配是通過.class文件而不是.java文件完成的。