3

我编写了一个 gradle 插件,它添加了一个名为 的自定义任务generateTestDocs,它依赖于任务groovydoc,它本身是由groovy插件创建的。

//MyPlugin.groovy
@Override
void apply(Project project) {
    project.apply(plugin: 'groovy')
    project.task(type: GenerateTestDocsTask, dependsOn: ':groovydoc', 'generateTestDocs')
}

project.tasks.groovydoc.doFirst {
    println "I should see this message but I don't"
}

我正在尝试通过运行任务来测试这个插件generateTestDocs

@Test
void testRunGenerateTestDocs() {
    Project project = ProjectBuilder.builder().build()
    project.apply(plugin: 'my.gradle.plugin')
    project.tasks.generateTestDocs.actions*.execute(project.tasks.generateTestDocs)
}

对于我测试的最后一行,我只想说project.task.generateTestDocs.execute()并让它运行具有所有依赖项的任务,但这似乎不起作用。编写 gradle 插件的文档仅显示断言assertTrue(project.tasks.hello instanceof GreetingTask),例如显示任务已添加到项目中,但没有显示如何运行该任务。

4

2 回答 2

0

ProjectBuilder仅用于单元测试。要将构建作为测试的一部分运行,您需要使用 Gradle 工具 API 或第三方插件,例如nebula-test(基于工具 API 构建)。

于 2014-12-08T22:17:25.260 回答
0

我遇到了同样的问题,我通过添加解决了这个问题

应用插件:CustomPluginName

在当前 gradle.build 中:

apply plugin: 'groovy'
...
// in this case Plugin name is MyPlugin
apply plugin: MyPlugin 
于 2017-09-03T14:55:38.797 回答