Robolectric може завантажувати артефакти Android runtime під час виконання тестів. Успішне розв'язання звичайних залежностей проєкту інструментом збирання не доводить, що це завантаження під час тесту використовує той самий проксі.

Robolectric 4.9.1 і новіші версії документують для цього завантажувача такі системні властивості:

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

Передайте їх у JVM, яка виконує тести. Для публічних завантажень артефактів, дозволених через неавтентифікований HTTP-посередник, використайте адресу зі списку HTTP-проксі у цих властивостях хоста й порту. Для проєкту Android з Groovy DSL Gradle відповідна конфігурація може виглядати так:

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

Тримайте це разом з наявною тестовою конфігурацією проєкту. Властивість, передана лише завантажувачу Gradle, не є доказом того, що відокремлена тестова JVM її отримала.

Для навмисно від'єднаного тестового середовища Robolectric також документує robolectric.offline і robolectric.dependency.dir. Така схема вимагає, щоб потрібні артефакти runtime були розміщені у вказаному каталозі. Власний офлайн-кеш Gradle не замінює каталог, якого очікує офлайн-розв'язувач Robolectric.

Схожі статті