Тестирование пользовательского Gradle-плагина с GradleRunner - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь разработать плагин Gradle (только для Java) (https://github.com/jdeppe-pivotal/test-in-docker). Структура gradle очень ванильная, и мой код плагина находится в src/main/java.

Япытаясь использовать GradleRunner для интеграционного теста и получить тестовый файл ресурса build.gradle:

apply plugin: 'io.pivotal.test.docker-plugin'

task helloWorld {
    doLast {
        println "Hello World!"
    }
}

Соответствующие биты тестового кода:

BuildResult result = GradleRunner.create()
    .withProjectDir(testProjectDir.getRoot())
    .withArguments("helloWorld")
    .withPluginClasspath()
    .build();

assertThat(result.getOutput()).contains("Hello World!");
assertThat(result.task(":helloWorld").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);

Однакотестовая сборка завершается неудачно с:

> Plugin with id 'io.pivotal.test.docker-plugin' not found.

Я вижу, что (как представляется) правильный путь к классу устанавливается с .withPluginClasspath() в вызове GradleRunner. Что я здесь не так делаю?

ОБНОВЛЕНИЕ:

Изменение ресурса теста build.gradle для ссылки на плагин следующим образом:

plugins {
    id 'io.pivotal.test.docker-plugin'
}

работает.

...