如何在 Quarkus 中覆盖一个单元测试的配置属性

Posted

技术标签:

【中文标题】如何在 Quarkus 中覆盖一个单元测试的配置属性【英文标题】:How to override config property for one Unittest in Quarkus 【发布时间】:2020-03-12 00:52:08 【问题描述】:

在我的 Quarkus 应用程序中,如果特定配置属性为真,StartupEvent 的观察者会将默认数据插入到我的数据库中。对于一个特定的 UnitTest,我希望我的数据库为空。

我认为有一些方法可以覆盖一个单元测试的配置值。这是真的吗,还是有更好的方法?

【问题讨论】:

【参考方案1】:

我建议使用测试配置文件

https://quarkus.io/blog/quarkus-test-profiles/

【讨论】:

非常感谢。这确实似乎是现在解决这个问题的方法......我会将它标记为已接受,即使我无法验证这个是否真的解决了这个问题,因为那个特定的项目已经完成了很长时间。如果其他人有什么要补充的,那将是非常受欢迎的。【参考方案2】:

您是否尝试过在 application.properties 中为该属性使用测试配置文件?

类似这样的:

—默认值为 A

myProp=A

——这是测试配置文件,它会覆盖默认值

%tst.myProp=B

【讨论】:

这就是我现在处理它的方式。但问题是,这个属性会被设置为我所有的测试,而不仅仅是单个测试。

以上是关于如何在 Quarkus 中覆盖一个单元测试的配置属性的主要内容,如果未能解决你的问题,请参考以下文章

如何覆盖 Quarkus 中的属性?

有没有办法在 Quarkus 单元测试中回滚事务?

“dev”配置覆盖 Quarkus 中的“test”配置

如何在单元测试期间覆盖 IQueryable 的 Contains 方法?

在单元测试中覆盖自动装配的 Bean

徒手搭建Python单元测试框架