【发布时间】:2020-04-02 10:56:11
【问题描述】:
我正在开发一个 Gradle 自定义插件,但在如何测试它时遇到了问题。
插件创建一个扩展来接收配置,并在评估后 (project.afterEvaluate {) 使用接收到的配置创建一个任务,这些值是任务上的 @Input。
按照文档https://docs.gradle.org/current/userguide/custom_plugins.html为插件创建测试,我使用以下内容创建项目并应用插件
@Before fun setup() {
project = ProjectBuilder.builder().build()
project.pluginManager.apply("my.plugin.name")
然后测试该扩展是否已创建:
assertTrue(project.extensions.findByName("name") is MyConfigType)
任务已创建:
assertTrue(project.tasks.findByName("mytask") is MyTaskType)
我遇到的问题是该任务仅创建afterEvaluate,因此此测试失败。据我了解,它必须是afterEvaluate 才能接收配置值。
所以我能看到我是否可以在测试中强制评估这个项目的唯一方法,但是如何?
是否有不同的方式来接收值?
【问题讨论】:
-
我面临着完全相同的问题。你找到解决办法了吗?
-
对不起@dpr 我什么也没得到。最后,我从 gradle 生命周期中提取了所有我可以使用的逻辑,以便我可以单独对其进行测试并手动测试该部分是否正常工作。
标签: gradle gradle-plugin