我的Spring Boot应用程序使用数据库服务器。在测试期间,我想运行数据库的嵌入式版本。服务器每次都以一个随机端口开始(它来自
testcontainers.org
).
我试过的第一件事就是用JUnit4的
@ClassRule
启动/停止服务器,但Spring Boot是智能的,可以跨测试类重用上下文。所以对于一个测试类来说,一切都很好,但是当我在一个包中运行测试(或者所有测试)时,它们会因为生命周期的不同而失败。
-
当Spring Boot测试基础设施启动和停止一个新的上下文时,是否有可能以某种方式钩住测试执行并获得回调?
我得到的最可能的答案是“在测试运行时向上下文添加一个服务器bean”。好吧,但我面临另一个问题:
-
如何确保在其他与服务器通信的bean之前初始化服务器bean?
@DependsOn
似乎不适合这里,因为我不想在生产中使用
@DependsOn("testServer")
弹簧靴是2.1.6。