我写了一个 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)
这样的断言。它显示任务已添加到项目中,但未显示如何运行该任务。
最佳答案
ProjectBuilder
仅用于单元测试。要将构建作为测试的一部分运行,您需要使用 Gradle 工具 API 或第三方插件,例如 nebula-test (它建立在工具 API 的基础上)。
关于groovy - 如何运行由 gradle 中的插件创建的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27367808/