运行 Java 集成测试时未设置环境变量

Environment variables not set when running Java integration tests

当运行对基本 GET 服务进行 Java 集成测试时,我们的应用程序代码无法检索环境变量。但是,当我们 运行 应用程序本身时,它可以毫无问题地检索变量。

我们正在 Mac (el captiain) 上开发,我们的 IDE 是 intellij。我们已经在 bash_profile 中导出了变量(例如导出 ORACLE_URL="*************")。并且我们可以在设置和刷新后回显变量。

我们完全不明白为什么它们在 gradlew 引导期间工作运行 而在测试期间却不工作运行。 bash_profile 是存储本地环境变量的正确位置吗?

如果您想从 intellij 运行 设置环境变量,则通过 运行 配置为您的测试设置环境变量,而不是在您的 bash_profile(运行s当您启动终端时。

查看环境变量部分 here(我假设您使用的是 junit,但我认为所有 运行 配置都有环境变量部分)

我们当前为 junit 测试创建环境变量的工作解决方案是 运行 命令 "launchctl setenv USERNAME mrSmith"。我们已将其添加到 .bash_profile 以在重启之间保留变量。

然而,Chii 的回答似乎是更明智的行动方式。我们还没有设法让这个解决方案在我们的 Intellij 实例中运行。