Robolectric은 테스트가 실행되는 동안 Android 런타임 아티팩트를 내려받을 수 있습니다. 빌드 도구가 프로젝트의 일반 의존성을 성공적으로 해석한다고 해서 테스트 시점의 이 다운로드가 같은 프록시를 사용한다는 증거는 아닙니다.

Robolectric 4.9.1 이상은 해당 다운로더에 대해 다음 시스템 속성을 문서화합니다.

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

테스트를 실행하는 JVM에 이들을 전달하세요. 인증 없는 HTTP 중계를 통해 허용되는 공개 아티팩트 다운로드에는 이 호스트 및 포트 속성에 HTTP 프록시 목록의 주소를 사용합니다. Gradle의 Groovy DSL을 쓰는 Android 프로젝트라면 관련 설정은 다음과 같습니다.

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도 문서화합니다. 그 구성은 올바른 런타임 아티팩트가 지정된 디렉터리에 배치되어 있어야 합니다. Gradle 자체의 오프라인 캐시는 Robolectric의 오프라인 리졸버가 기대하는 디렉터리를 대체하지 않습니다.

관련 글