如何通过Maven命令行参数从PIT突变测试中排除测试类
你之前尝试的命令存在两处错误:
- 参数名首字母大写,PIT Maven插件的命令行参数为小驼峰命名,首字母大写的是PIT原生独立运行时的参数,不适用于Maven场景
excludedClasses是用来排除不需要进行突变植入的业务代码类,无法用来排除测试类,排除测试类需要使用excludedTests参数
正确可用命令
按类名后缀排除所有集成测试
如果你的集成测试类均以 IntegrationTest 为后缀,使用以下命令:
mvn pitest:mutationCoverage -DexcludedTests="**/*IntegrationTest"
排除指定包下的所有集成测试
如果你的集成测试都放在统一的包路径下,使用以下命令:
mvn pitest:mutationCoverage -DexcludedTests="path.to.integrationtest.package.**/*"
注意事项
- 通配符需要写完整:
**用于匹配多级目录/包路径,*用于匹配类名的模糊部分,不要遗漏通配符导致匹配规则失效 - Windows系统下建议把参数值用双引号包裹,避免通配符被系统命令行提前解析导致规则失效
- 若规则不生效可先在pom的pitest插件配置段中验证排除规则的正确性,确认匹配逻辑没问题后再迁移为命令行参数
内容的提问来源于stack exchange,提问作者Leonardo Meinerz Ramos
相关产品推荐
相关产品推荐

