0

因此,我在我的应用程序中添加了 Flyway,以使用嵌入式 H2 运行集成测试。我还添加了一个数据脚本到db/migration/afterMigrate.sql. Spring Boot 自动配置一切正常,直到我使用@SpringBootTest. 此类无法执行,因为 Flyway 尝试afterMigrate.sql再次执行。我似乎无法阻止它运行,我已将flyway-spring-test库添加到项目中并尝试使用它但没有运气。我觉得奇怪的是第二个类没有再次执行数据库迁移,只是 afterMigrate.sql 脚本。

4

1 回答 1

0

这是由第二个类中的 @SpyBean 引起的——第一个类的 Spring 上下文没有被重用。解决方法是创建一个抽象类,两个测试类都从中扩展,并在其中声明 bean。这是 Spring 的预期行为,但是否应该这样做一直存在争议 - 请参阅https://github.com/spring-projects/spring-boot/issues/7174了解更多信息

于 2018-04-12T12:27:54.613 回答