我已经编写了一个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)
之类的断言,这些断言显示任务已添加到项目中,但没有显示如何运行该任务。
答案 0 :(得分:0)
ProjectBuilder
仅适用于单元测试。要将构建作为测试的一部分运行,您需要使用Gradle工具API或第三方插件,例如nebula-test(基于工具API构建)。
答案 1 :(得分:0)
我遇到了同样的问题,我通过添加
解决了这个问题申请插件:CustomPluginName
在当前的gradle.build中:
apply plugin: 'groovy'
...
// in this case Plugin name is MyPlugin
apply plugin: MyPlugin