我想从我的Gradle构建中设置一个环境变量。我在MacOS X(El Capitan)上。 该命令是“gradle测试”。从Gradle构建设置环境变量
我在我的build.gradle尝试这样的:
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"));
有没有办法从摇篮设置环境变量建立(在文件的build.gradle)?
更新:
我在隔离测试吧:值并获得通过,我的测试任务接收的一切,无论是systemProperty,环境变量或jvmArgs。
所以,Gradle本身在这里没什么问题。
当我在真实项目上尝试时出现问题。它使用Spring进行依赖注入。我可能是错的,但它看起来像Spring框架清除这些值的地方。
该子项目目前正在被冻结,我现在无法详细检查我的猜测。
另一个失败实验: '测试{ systemProperty 'SOME_TEST_VAR', 'AAA' 环境 'SOME_TEST_VAR', 'AAA' }' 并在测试中: 'boolean good = System.getenv()。containsKey(“SOME_TEST_VAR”)|| System.getProperties()的containsKey( “SOME_TEST_VAR”); assertTrue(good);' – user3791111
即使在阅读帮助后,我也无法在这里进行换行。对不起,只是假设我想让他们成为什么样的人。 – user3791111
如果你有更多的信息需要提供,你应该编辑你的问题。 –