如何使用Gradle运行多个指定名称的测试用例?
如何在Gradle中使用
--tests指定多个测试用例 别担心,Gradle的--tests参数完全支持指定多个测试用例,只是你之前的用法没找对路子~我来给你梳理正确的方式和之前尝试踩的坑:
正确的用法:多次使用--tests选项
要指定多个测试类,你需要给每个测试类单独加一个--tests参数,比如:
gradle test --tests mypackage.MyTest --tests mypackage.model.ModelTest --tests BasicTests
这样Gradle就会依次匹配每个--tests后面的测试类,把它们都运行起来。
其他实用的批量指定方式
如果你的测试类有规律,还可以用通配符来简化命令:
- 运行
mypackage包下的所有测试类:gradle test --tests "mypackage.*" - 运行所有名字以
Test结尾的测试类:gradle test --tests "*Test" - 结合通配符和多个
--tests,混合指定单个类和批量类:gradle test --tests "mypackage.*Test" --tests BasicTests
为什么你之前的尝试失败了?
我来帮你分析下之前踩的坑:
- 逗号分隔的写法:Gradle的
--tests不支持用逗号分隔多个测试模式,它会把整个逗号串当成一个单一的匹配模式,自然找不到对应的测试类,导致结果不符合预期。 - 直接写多个参数(不加
--tests):Gradle命令行里,任务(比如test)之后的参数如果不是以--开头,会被当成任务名处理,所以mypackage.model.ModelTest被识别成了一个不存在的任务,才会报错“Task 'xxx' not found”。 - 单个引号里放多个测试:这时候整个字符串会被当成一个完整的匹配模式,Gradle会尝试寻找类名完全等于这个带空格的字符串的测试类,显然不存在,所以只会匹配到第一个符合部分模式的测试类(也就是
mypackage.MyTest),后面的都没被识别到。
进阶:指定单个测试方法
如果需要运行某个测试类里的特定方法,也可以用--tests:
gradle test --tests "mypackage.MyTest.myTestMethod"
甚至可以用通配符匹配一类方法:
gradle test --tests "mypackage.MyTest.test*" --tests "mypackage.ModelTest.validate*"
内容的提问来源于stack exchange,提问作者Robert Jack Will
相关产品推荐
相关产品推荐

