Robolectric peut télécharger des artefacts Android runtime pendant l'exécution des tests. Le fait qu'un outil de build résolve correctement les dépendances ordinaires du projet ne prouve pas que ce téléchargement pendant le test utilise le même proxy.

Robolectric 4.9.1 et les versions ultérieures documentent ces propriétés système pour ce téléchargeur :

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

Transmettez-les à la JVM qui exécute les tests. Pour les téléchargements publics d'artefacts autorisés via un intermédiaire HTTP non authentifié, utilisez une adresse de la liste de proxies HTTP dans ces propriétés d'hôte et de port. Pour un projet Android utilisant le DSL Groovy de Gradle, la configuration pertinente peut être :

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

Conservez ceci avec la configuration de test existante du projet. Une propriété fournie uniquement au lanceur Gradle ne prouve pas qu'une JVM de test dérivée l'a reçue.

Pour un environnement de test volontairement déconnecté, Robolectric documente aussi robolectric.offline et robolectric.dependency.dir. Cette disposition exige que les bons artefacts d'exécution soient placés dans le répertoire indiqué. Le cache hors ligne de Gradle ne remplace pas le répertoire attendu par le résolveur hors ligne de Robolectric.

Articles similaires