Rob*_*bin 145
例如,您也可以使用模式
mvn '-Dtest=de.mypackage.*Test' test
Run Code Online (Sandbox Code Playgroud)
从包de.mypackage结束的类中运行所有测试*Test.
[更新2017/12/18]:
由于这已成为公认的答案,以下是一些进一步的信息:
上面使用的语法(限定包名称)需要Surefire 2.19.1或更高版本!例如,早期版本需要使用路径表达式
mvn -Dtest="de/mypackage/*Test" test
Run Code Online (Sandbox Code Playgroud)我使用引号(`或")来阻止shell执行路径名扩展,Maven不需要任何引号.
可以使用以下语法来简化单个测试方法
mvn -Dtest=MyUnitTest#testMethod test
Run Code Online (Sandbox Code Playgroud)来自子包的所有测试也可以包括,以便执行包de.mypackage.sub执行中或包下执行的所有测试:
mvn -Dtest="de/mypackage/sub/**" test
Run Code Online (Sandbox Code Playgroud)
或使用Surefire 2.19.1或更高版本
mvn -Dtest="de.mypackage.sub.**" test
Run Code Online (Sandbox Code Playgroud)还有其他可能性,比如使用正则表达式,请参阅运行单个测试的官方文档.
Nul*_*ice 19
AFAIK没有用于surefire的命令行参数:test在特定包中运行测试.
我使用配置变量来实现相同的效果.我的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>
Run Code Online (Sandbox Code Playgroud)
现在,如果我想在名为"com.example"的包中运行测试,我使用以下命令:
mvn test -DtestGroup=com/example
Run Code Online (Sandbox Code Playgroud)
mvn test -Dtest=com.myrootpackage.myfirstlevelpackage.*
Run Code Online (Sandbox Code Playgroud)
...如果要包含所有子包:
mvn test -Dtest=com.myrootpackage.myfirstlevelpackage.**.*
Run Code Online (Sandbox Code Playgroud)
您可以从以下情况中发挥作用:
(1)在Maven构建过程中跳过所有测试执行
mvn package -DskipTests
Run Code Online (Sandbox Code Playgroud)
(2)执行所有测试用例
mvn test
Run Code Online (Sandbox Code Playgroud)
(3)执行特定的测试组
mvn test -DincludeGroups=TestGroup1,TestGroup2
Run Code Online (Sandbox Code Playgroud)
(4)在执行过程中排除特定的测试组
mvn test -DexcludeGroups=TestGroup3,TestGroup4
Run Code Online (Sandbox Code Playgroud)
(5)执行特定的包测试用例
mvn test -Dtest="test.java.com.service.map.**"
Run Code Online (Sandbox Code Playgroud)
(6)执行特定测试
mvn test -Dtest=Test1,Test2
Run Code Online (Sandbox Code Playgroud)
希望通过不同的执行组合对您有所帮助。
O Badr 答案的 pom.xml 版本:
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62297 次 |
| 最近记录: |