intellij-idea - 从 gradle 注入(inject)环境和系统变量到 Intellij 运行和 Debug模式

标签 intellij-idea gradle

我在 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:右键单击测试并运行 -> 不打印任何内容。集成测试也一样。

  • 我单击了 IntelliJ 的 gradle 项目 Pane 中的“刷新所有 gradle 项目”按钮。不用找了。
    这个问题不仅限于环境变量。能够将系统属性或其他从 gradle 加载到 IntelliJ 中的任何运行/ Debug模式也很好。

    最佳答案

    在 IntelliJ 中,确保将 IDE 构建/运行操作委托(delegate)给 Gradle,而不是通过 IntelliJ 本地处理。如果不勾选此项,IntelliJ 将尝试使用它知道的属性来解析这些变量,这可能不是您想要的。

    enter image description here

    关于intellij-idea - 从 gradle 注入(inject)环境和系统变量到 Intellij 运行和 Debug模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47721685/

    相关文章:

    java - 如何将 libGDX Gradle 复制的文件从工作区导出回原始项目?

    android - 当我尝试将依赖项添加到项目Gradle文件中时,android studio我收到此错误

    java - Spring/Java org.springframework.beans.factory.CannotLoadBeanClassException : Cannot find class [C:\launchCodeFiles\src\main\java\RunMario. java]

    java - 应用程序错误:java: module not found: javafx.

    Android Studio 更新 - 无法解析 com.android.databinding

    android - Gradle离线同步问题

    android - 尝试将我的android应用转移到gradle,在构建时遇到一些问题

    intellij-idea - 如何在 WebStorm 中探索 TypeScript 推断类型

    intellij-idea - IntelliJ : how to make non java files copied to the bin directory as well?

    intellij-idea - IDEA 在树中两次显示一个项目