我正在尝试设置一个环境变量,我正在使用 Macosx (埃尔卡皮坦)。 命令是“等级测试”。
我在自己的楼里试试这个:
task setenv(type: Exec) {
commandLine "export", "SOME_TEST_VAR=aaa"
}
test.dependsOn setenv
构建失败:
任务“ : myproject: setenv”执行失败。
启动进程的命令‘导出’时出现问题
我还试过这个:
test.doFirst {
ProcessBuilder pb1 = new ProcessBuilder("export SOME_TEST_VAR=some test value")
pb1.start();
}
构建成功了,但是,如果我在我的 JUnit 测试中检查环境变量,它就失败了:
assertTrue(System.getenv().containsKey("SOME_TEST_VAR"));
有没有什么方法可以设置 Gradle build 的环境变量(在 build.Gradle 文件中) ?
更新:
我已经对它进行了隔离测试: 值确实被传递了,我的测试任务接收了所有内容,可以是 systemProperty、环境变量或 jvmArgs。
所以,这里的格拉德尔本身并没有什么问题。
当我在真正的项目中尝试时,问题就出现了。它用 Spring 做依赖注入。我可能错了,但看起来 Spring 框架在某个地方清除了这些值。
该子项目目前正在冻结,我不能检查我的猜测现在细节。