升级Gradle到6.x报错:Test类型任务systemtestRun不存在testClassesDir属性
问题原因
- Gradle 2.3版本中
Test类型任务支持testClassesDir属性,该属性在Gradle 3.4版本开始被标记为废弃,Gradle 5.0及以上版本正式移除,你升级到6.7.1后该属性已不存在,因此触发未知属性报错。 - 你配置中赋值的
sourceSets.systemtest.output.classesDirs本身就是多目录文件集合,正好匹配替代属性的参数要求,不需要调整赋值内容。
解决方案
直接将配置中的testClassesDir改为官方指定的替代属性testClassesDirs即可,修改后的完整配置如下:
task systemtestRun(type: Test) { description 'run tests' testClassesDirs = sourceSets.systemtest.output.classesDirs classpath = sourceSets.systemtest.runtimeClasspath + sourceSets.test.runtimeClasspath }
注意事项
- 项目中如果还有其他自定义
Test类型任务用到了testClassesDir属性,需要同步替换为testClassesDirs - 如果你需要同时兼容高低版本Gradle,可以增加版本判断分支,单一场景下升级到6.7.1直接替换即可正常运行。
内容的提问来源于stack exchange,提问作者Willian Tártaro
相关产品推荐
相关产品推荐

