使用Gradle Project API测试插件,而不是创建临时目录

问题描述

测试Gradle插件的典型方法是通过创建一个包含build.gradle文件和settings.gradle文件的临时目录(请参见其TestKit guide),然后将该临时目录提供为GradleRunner的参数。

例如,如果要测试其插件是否具有特定任务,他们可以像这样使用Project API:

val project = ProjectBuilder.builder().build()
project.pluginManager.apply("your.plugin.id")

assert(project.tasks.getByName("customTaskName") is CustomTask)

Project提供诸如projectDirbuildFile之类的属性。正如Project文档中的生命周期section所述,

项目与项目之间存在一对一的关系 build.gradle文件。在构建初始化期间,Gradle会组装一个 参与构建的每个项目的项目对象, 如下:

[生命周期的前三个步骤,涉及设置]

最后,通过执行每个build.gradle文件来评估每个Project, 如果存在,则反对该项目。这些项目在 广度顺序,这样一个项目在其子项目之前进行评估 项目。可以通过调用覆盖此顺序 Project.evaluationDependsOnChildren()或通过添加显式 评估依赖使用 Project.evaluationDependsOn(java.lang.String)。

一个使这个说明是否建议使用Project来实际运行构建和/或执行任务的人感到奇怪。它可以与GradleRunner一起使用,而不是与临时目录一起使用吗?如果不是,那么在Project的上下文中评估是什么意思,它是如何触发的(此类没有任何evaluate()方法)?

我真正需要的是测试Gradle插件。我需要为该插件使用自定义扩展名,为其属性分配值,然后运行一个使用该扩展名的任务并检查结果。我可以用标准的临时目录方式执行此操作,但我想知道是否还有其他方法(如果有,很可能在文档中已经提到过,但是谁知道?)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...