我的Spring Boot应用程序使用数据库服务器。在测试过程中,我想运行数据库的嵌入式版本。每次服务器都从一个随机端口启动(来自testcontainers.org
)。
我尝试的第一件事是使用JUnit4的@ClassRule
启动/停止服务器,但是Spring Boot很聪明,并且可以在测试类之间重用上下文。因此,对于单个测试类,一切正常,但是当我在一个包(或所有测试)中运行测试时,由于存在生命周期差异,它们将失败。
我将得到的最可能的答案是“只需在运行测试时将服务器bean添加到上下文中”。好的,但是这里我面临另一个问题:
@DependsOn
似乎不适合此处,因为我不想在生产中使用带有@DependsOn("testServer")
注释的bean Spring Boot是2.1.6。