在 Gradle TestKit 测试夹具中设置代理属性
在运行那个独立构建之前先设置 fixture 根目录下的 gradle.properties,并显式检查覆盖项与隔离的用户主目录。
new File(fixtureDir, 'gradle.properties').text = """systemProp.http.proxyHost=proxy.example
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.example
systemProp.https.proxyPort=8080
"""
def result = GradleRunner.create()
.withProjectDir(fixtureDir)
.withArguments('assemble')
.build()使用 withProjectDir 选定的现有 fixture 目录,连同它的 build/settings 文件一起。把代理属性与 fixture 已有的需求合并;代理主机和端口保持分开。对于被允许的公共仓库下载,HTTP 代理列表 为这些属性提供候选。
插件的构建可以成功,而这一功能测试构建却失败。导入它的测试类并不会复制外层的 gradle.properties,JUnit JVM 上的属性本身也不描述那个独立构建的输入。
TestKit 默认使用隔离的 Gradle 用户主目录,因此开发者平日的私有属性可能并不存在。反过来,命令行 -D 或用户主目录中的属性又会覆盖 fixture 中的条目。
这配置的是 Gradle 仓库请求。若插件启动另一个下载器,或自带私有 HTTP 传输,则可能需要另一条路径。