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-транспорт, може знадобитися інший маршрут.

Схожі статті