因此,我在我的应用程序中添加了 Flyway,以使用嵌入式 H2 运行集成测试。我还添加了一个数据脚本到db/migration/afterMigrate.sql
. Spring Boot 自动配置一切正常,直到我使用@SpringBootTest
. 此类无法执行,因为 Flyway 尝试afterMigrate.sql
再次执行。我似乎无法阻止它运行,我已将flyway-spring-test
库添加到项目中并尝试使用它但没有运气。我觉得奇怪的是第二个类没有再次执行数据库迁移,只是 afterMigrate.sql 脚本。
问问题
851 次
1 回答
0
这是由第二个类中的 @SpyBean 引起的——第一个类的 Spring 上下文没有被重用。解决方法是创建一个抽象类,两个测试类都从中扩展,并在其中声明 bean。这是 Spring 的预期行为,但是否应该这样做一直存在争议 - 请参阅https://github.com/spring-projects/spring-boot/issues/7174了解更多信息
于 2018-04-12T12:27:54.613 回答