我在 build.gradle 中定义了一些环境变量,我希望 IntelliJ 在我运行/调试单元测试或其他类型的测试(包括覆盖率和单独的测试运行)时自动加载它们
例子:
build.gradle
plugins {
id 'org.unbroken-dome.test-sets' version '1.4.2'
}
apply plugin: 'java'
apply plugin: 'idea'
testSets {
integrationTest {
dirName = 'integration-test'
}
}
test {
environment 'MY_ENV_VAR_1', 'my_env_value_1'
}
integrationTest {
environment 'MY_ENV_VAR_1', 'my_env_value_1000'
}
测试方法 (在测试和集成测试目录中)
@Test
public void test() {
System.out.println(System.getenv("MY_ENV_VAR_1"));
}
运行
gradle test
打印出 my_env_value_1
gradle integrationTest
打印出 my_env_value_1000
我单击了 IntelliJ 的 gradle 项目 Pane 中的“刷新所有 gradle 项目”按钮。不用找了。
这个问题不仅限于环境变量。能够将系统属性或其他从 gradle 加载到 IntelliJ 中的任何运行/ Debug模式也很好。
最佳答案
在 IntelliJ 中,确保将 IDE 构建/运行操作委托(delegate)给 Gradle,而不是通过 IntelliJ 本地处理。如果不勾选此项,IntelliJ 将尝试使用它知道的属性来解析这些变量,这可能不是您想要的。
关于intellij-idea - 从 gradle 注入(inject)环境和系统变量到 Intellij 运行和 Debug模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47721685/