Robolectric może pobierać artefakty Android runtime podczas działania testów. To, że narzędzie budowania pomyślnie rozwiązuje zwykłe zależności projektu, nie dowodzi, że to pobieranie w czasie testu używa tego samego proxy.

Robolectric 4.9.1 i nowsze dokumentują następujące właściwości systemowe dla tego pobierającego:

robolectric.dependency.proxy.host=proxy.example
robolectric.dependency.proxy.port=8080

Przekaż je JVM, która uruchamia testy. W przypadku publicznych pobrań artefaktów dozwolonych przez nieuwierzytelniony pośrednik HTTP użyj adresu z listy proxy HTTP w tych właściwościach hosta i portu. W projekcie Android korzystającym z Groovy DSL Gradle odpowiednia konfiguracja może wyglądać tak:

android {
    testOptions {
        unitTests.all {
            systemProperty 'robolectric.dependency.proxy.host', 'proxy.example'
            systemProperty 'robolectric.dependency.proxy.port', '8080'
        }
    }
}

Zachowaj to razem z istniejącą konfiguracją testów projektu. Właściwość przekazana tylko programowi uruchamiającemu Gradle nie jest dowodem, że oddzielona JVM testowa ją otrzymała.

Dla celowo odłączonego środowiska testowego Robolectric dokumentuje także robolectric.offline i robolectric.dependency.dir. Taki układ wymaga, aby właściwe artefakty runtime zostały umieszczone w podanym katalogu. Własny cache offline Gradle nie zastępuje katalogu oczekiwanego przez resolver offline Robolectric.

Powiązane artykuły