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()

Usa la directory del fixture esistente selezionata da withProjectDir, insieme ai suoi file build/settings. Unisci le proprietà del proxy con ciò che il fixture richiede già; host e porte del proxy restano separati. Per i download consentiti dai repository pubblici, la lista di proxy HTTP fornisce candidati per quelle proprietà.

La build esterna del plugin può riuscire mentre questa build di test funzionale fallisce. Importare la sua classe di test non copia il gradle.properties esterno, e le proprietà sulla JVM di JUnit non descrivono da sole gli input della build separata.

TestKit usa per impostazione predefinita una home utente Gradle isolata, quindi le solite proprietà private dello sviluppatore possono mancare. Al contrario, le proprietà da riga di comando -D o della home utente possono sovrascrivere le voci del fixture.

Questo configura le richieste ai repository Gradle. Un plugin che avvia un altro downloader o possiede un proprio trasporto HTTP può necessitare di un'altra rotta.

Articoli correlati