Написах приставка за 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)
, което показва, че задачата е добавена към проекта, но не показва как да се изпълни тази задача.