我可以在 Maven docs 中找到它显示了如何运行:
- 一次测试
- 一个测试类中的所有测试
- 匹配特定模式的类中的所有测试
但是如何在一个包中运行所有的测试呢?这可能吗?
我更喜欢不需要修改 pom.xml
或代码的解决方案。
最佳答案
你也可以使用模式,例如
mvn '-Dtest=de.mypackage.*Test' test
在 de.mypackage 包中以 *Test
结尾的类中运行所有测试。
[2017/12/18更新]:
由于这已成为公认的答案,因此这里有一些进一步的信息:
- Maven 使用 Maven Surefire plugin执行测试。
上面使用的语法(限定包名)需要 Surefire 版本
2.19.1
或更高版本!早期版本需要使用路径表达式,例如mvn -Dtest="de/mypackage/*Test" test
我使用引号(` 或 ")来防止 shell 执行路径名扩展,Maven 不需要任何引号。
可以使用以下语法来执行单个测试方法
mvn -Dtest=MyUnitTest#testMethod test
子包中的所有测试也可以包含在内,以便执行包中或包下的所有测试
de.mypackage.sub
执行:mvn -Dtest="de/mypackage/sub/**" test
或使用 Surefire
2.19.1
或更高版本mvn -Dtest="de.mypackage.sub.**" test
还有更多的可能性,比如使用正则表达式,参见 official documentation of running a single test .
关于java - 如何使用 Maven 运行特定包中的所有测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6819888/