Robolectric 4.9.1+: Proxy-Einstellungen für Android-Runtime-Downloads
Übergeben Sie die Proxy-Eigenschaften von Robolectric für Artefakt-Downloads an die Test-JVM, die Android-Runtime-Abhängigkeiten abruft.
Robolectric kann Android-Runtime-Artefakte herunterladen, während Tests laufen. Dass ein Build-Werkzeug die gewöhnlichen Abhängigkeiten des Projekts erfolgreich auflöst, belegt nicht, dass dieser Download zur Testzeit denselben Proxy verwendet.
Robolectric 4.9.1 und später dokumentieren für diesen Downloader die folgenden Systemeigenschaften:
robolectric.dependency.proxy.host=proxy.example
robolectric.dependency.proxy.port=8080Übergeben Sie sie an die JVM, die die Tests ausführt. Für öffentliche Artefakt-Downloads, die über einen nicht authentifizierten HTTP-Vermittler erlaubt sind, verwenden Sie eine Adresse aus der HTTP-Proxy-Liste in diesen Host- und Port-Eigenschaften. Für ein Android-Projekt mit Gradles Groovy-DSL kann die relevante Konfiguration so aussehen:
android {
testOptions {
unitTests.all {
systemProperty 'robolectric.dependency.proxy.host', 'proxy.example'
systemProperty 'robolectric.dependency.proxy.port', '8080'
}
}
}Halten Sie dies bei der bestehenden Testkonfiguration des Projekts. Eine Eigenschaft, die nur dem Gradle-Launcher übergeben wird, ist kein Beleg dafür, dass eine abgezweigte Test-JVM sie erhalten hat.
Für eine bewusst getrennte Testumgebung dokumentiert Robolectric außerdem robolectric.offline und robolectric.dependency.dir. Diese Anordnung erfordert, dass die richtigen Runtime-Artefakte im angegebenen Verzeichnis bereitgestellt werden. Der eigene Offline-Cache von Gradle ersetzt nicht das Verzeichnis, das der Offline-Resolver von Robolectric erwartet.