Testkit / GradleRunner:如何使用代理?

MRa*_*ser 5 gradle testkit gradle-plugin

对于常规 gradle 操作,gradle.properties我的项目或主页中有一个文件,用于配置代理详细信息(主机/端口等)

使用时GradleRunner,该gradle.properties文件会被有意忽略:
“默认 Gradle 用户主目录(例如 ~/.gradle/gradle.properties)中的任何配置都不会用于测试执行。TestKit 没有公开用于细粒度控制的机制环境的所有方面(例如 JDK)。TestKit 的未来版本将提供改进的配置选项。”

(来自https://docs.gradle.org/current/userguide/test_kit.html#sec:controlling_the_build_environment

问题:使用时
如何配置代理GradleRunner

Chr*_*iki 2

您只需将gradle.properties带有代理设置的文件添加到您的测试项目中(使用 运行GradleRunner)。Here\xe2\x80\x99s 是一个完整的示例项目(Gradle 7.1 Wrapper 文件未显示):

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 groovy\n            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 com\n                \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example\n                    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 MyTest.groovy\n
Run Code Online (Sandbox Code Playgroud)\n

build.gradle

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 groovy\n            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 com\n                \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example\n                    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 MyTest.groovy\n
Run Code Online (Sandbox Code Playgroud)\n

src/test/groovy/com/example/MyTest.groovy

\n
plugins {\n    id \'groovy\'\n    id \'java-gradle-plugin\'\n}\n\nrepositories {\n  mavenCentral()\n}\n\ndependencies {\n    testImplementation(\'org.spockframework:spock-core:2.0-groovy-3.0\')\n}\n\ntest {\n    useJUnitPlatform()\n}\n
Run Code Online (Sandbox Code Playgroud)\n

I\xe2\x80\x99ve 使用了不存在的虚拟代理,由于测试/连接超时 (\xe2\x86\x92 SpockTimeoutError),导致测试失败。使用真正的代理,测试应该会成功。

\n