Robolectric 4.9.1+:Android runtime 下载的代理设置
将 Robolectric 的产物下载代理属性传给获取 Android runtime 依赖的测试 JVM。
Robolectric 可以在测试运行期间下载 Android runtime 产物。构建工具能成功解析项目的普通依赖,并不证明这次测试时的下载使用了同一个代理。
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。这种安排要求把正确的 runtime 产物放入指定目录。Gradle 自带的离线缓存不能替代 Robolectric 离线解析器所期望的目录。