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 не заменя директорията, която очаква офлайн resolver-ът на Robolectric.

Подобни статии