测试套件环境变量

Test Suite Environment Variables

我在 Qurkus 中面临新手挑战(我也是 Java 中的新手,如果我遇到了愚蠢的情况,我深表歉意)。我正在为本地开发变量使用“.env”文件,并在“application.properties”中设置(非秘密)生产变量。

一切都很好,但现在我正在尝试设置一个测试套件,“.env”中的变量正在覆盖“application.properties”中的变量(即使是带有“%test”配置文件的变量) & 阻止我同时拥有开发和测试环境。

对我来说,这可以通过为不同的 % 配置文件(如“.env.testing”)创建一个单独的(源代码控制索引)env 文件并以某种方式将其分配给测试运行器来完成。这种模式在其他语言的测试框架中很常见,但我找不到解决方案。

有什么想法吗?

谢谢

一种简单的方法是在 application.properties 文件中使用 属性 表达式。

例如,要设置 application.host,您可以在 application.properties 文件中使用像 application.host=${HOST:localhost} 这样的 属性 表达式。如果在您的 .env 文件或 application.properties 文件中定义了名为 HOST 的 属性,那么它的值将分配给 application.host,否则,默认值(localhost in这个例子)被赋值。

事实证明,Quarkus 支持 .env 中格式不同的配置文件(但文档中未提及)。所以我们可以像这样简单地保留我们的 application.properties 文件:

app.env=production

.env 文件如下:

_DEV_APP_ENV=development
_TEST_APP_ENV=testing

可以在 this PR 中找到更详细的文档。