Robolectric kan downloade Android-runtime-artefakter, mens test kører. At et byggeværktøj med succes opløser projektets almindelige afhængigheder beviser ikke, at denne download under testen bruger samme proxy.

Robolectric 4.9.1 og nyere dokumenterer disse systemegenskaber for den downloader:

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

Videregiv dem til den JVM, der kører testene. Til offentlige artefaktdownloads, der er tilladt via en uautentificeret HTTP-formidler, skal du bruge en adresse fra HTTP-proxylisten i disse vært- og portegenskaber. For et Android-projekt med Gradles Groovy-DSL kan den relevante konfiguration være:

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

Behold dette sammen med projektets eksisterende testkonfiguration. En egenskab, der kun gives til Gradle-launcheren, er ikke bevis for, at en forgrenet test-JVM har modtaget den.

Til et bevidst afkoblet testmiljø dokumenterer Robolectric også robolectric.offline og robolectric.dependency.dir. Den opsætning kræver, at de korrekte runtime-artefakter er placeret i den angivne mappe. Gradles egen offlinecache erstatter ikke den mappe, som Robolectrics offline-resolver forventer.

Relaterede artikler