@SpringBootTest 使用错误 application.yml

@SpringBootTest uses the wrong application.yml

我有一个 spring 引导应用程序,在 main/resources 中的应用程序-development.yml 中配置了 MySQL 数据库,当 运行 应用程序。

我还在 test/resources 中创建了一个应用程序-test.yml,它配置了一个 H2 数据库,并将 h2 数据库添加到范围为 test 的 pom。

毕竟我已经创建了一个带有 @SpringBootTest 注释的集成测试,该注释使用主要的 Application.class。 运行 然而,这些测试似乎想要初始化 MySQL 数据库,因为我看到正在使用这些凭据。

我尝试使用自定义 DataSource 实例创建自定义 @TestConfiguration class,但它似乎没有任何效果,即使我将其设置为唯一配置 class(即 @SpringBootTest(classes = {TestConf.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 而不是 @SpringBootTest(classes = {Application.class, TestConf.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

它不断尝试使用main/resources/application-development.yml中定义的配置。怎么了?

尝试在 class 以上 @SpringBootTest.

测试中添加以下行
@ActiveProfiles("test")