我有一個JUnit 4.12 SlowTests
測試套件,我想從執行中排除它,除非在Maven命令行中有特別的要求。如何在Maven中的excludedGroups中運行單元測試
我加入以下到我的POM文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<excludedGroups>com.Example.SlowTests</excludedGroups>
<includes>
<include>**/*TestSuite.class</include>
</includes>
<excludes>
<exclude></exclude>
</excludes>
</configuration>
</plugin>
我已經定義的類別爲SlowTests
,並把它應用到MySlowTests
類。
我已註釋的測試套件如下:
@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses({ MySlowTests.class })
public class MySlowTestSuite
當運行mvn package
所有除MySlowTests
單元測試被執行。
然而,尋找不同的答案,如https://stackoverflow.com/a/25639372/820657和https://stackoverflow.com/a/21830866/820657我希望下面的命令:
mvn package -Dgroups=com.Example.MySlowTests
運行排除MySlowTests
測試,但它們不運行。實際上沒有測試運行。
我在做什麼錯?
有沒有辦法使用這種方法,所以我可以默認運行所有快速測試?我不想對所有的快速測試套件進行註釋。 – ksl
@ksl我已經更新了包含該要求的實現細節的答案。 – glytching