new File(fixtureDir, 'gradle.properties').text = """systemProp.http.proxyHost=proxy.example
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.example
systemProp.https.proxyPort=8080
"""

def result = GradleRunner.create()
    .withProjectDir(fixtureDir)
    .withArguments('assemble')
    .build()

Используйте существующий каталог fixture, выбираемый через withProjectDir, вместе с его файлами build/settings. Объедините свойства прокси с тем, что fixture уже требует; хосты и порты прокси остаются отдельными. Для разрешённых загрузок из публичных репозиториев список HTTP-прокси даёт кандидатов для этих свойств.

Внешняя сборка плагина может пройти, тогда как эта сборка функционального теста падает. Импорт её тестового класса не копирует внешний gradle.properties, а свойства на JVM JUnit сами по себе не описывают входы отдельной сборки.

TestKit по умолчанию использует изолированный домашний каталог Gradle, поэтому обычные приватные свойства разработчика могут отсутствовать. И наоборот, свойства командной строки -D или домашнего каталога пользователя могут переопределить записи fixture.

Это настраивает запросы к репозиториям Gradle. Плагину, запускающему другой загрузчик или имеющему собственный HTTP-транспорт, может понадобиться другой маршрут.

Похожие статьи