Gradle Android测试不支持--tests过滤参数,执行报错未知命令行选项
解决Android Gradle测试时--tests参数报错的问题
我之前也踩过这个坑!出现Unknown command-line option '--tests'的原因是,Android Gradle插件的测试命令结构和标准Gradle的通用test任务不一样,直接在根命令后加--tests会被识别成无效参数。下面给你几个靠谱的解决办法:
方法1:指定具体测试任务后加--tests参数
Android的测试分为单元测试和Instrumented设备测试,对应不同的Gradle任务,你需要先指定任务,再追加--tests过滤规则:
单元测试(本地运行)
针对Debug变体的单元测试,命令格式如下:
./gradlew testDebugUnitTest --tests "com.yourpackage.YourTestClass"
如果要精确到单个测试方法:
./gradlew testDebugUnitTest --tests "com.yourpackage.YourTestClass.targetTestMethod"
Instrumented测试(真机/模拟器运行)
针对Debug变体的设备测试,用connectedAndroidTest任务:
./gradlew connectedDebugAndroidTest --tests "com.yourpackage.YourInstrumentedTestClass"
方法2:用-P参数传递Instrumented测试过滤规则
如果是Instrumented测试,也可以通过-Pandroid.testInstrumentationRunnerArguments参数来指定测试类/方法,这种方式在老版本插件上兼容性更好:
./gradlew connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.yourpackage.YourInstrumentedTestClass
要指定单个方法的话,格式是:
./gradlew connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.yourpackage.YourInstrumentedTestClass#targetTestMethod
注意事项
- 测试类的包名要写完整,避免匹配不到;如果路径里有空格,一定要用引号包裹。
- 替换命令中的
Debug为你的构建变体(比如Release),如果是自定义变体就用对应的名称。 - 确保你的Android Gradle插件版本在4.0及以上,老版本可能不支持部分语法。
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

