【发布时间】:2018-09-23 01:02:02
【问题描述】:
我一直在尝试为 Spring Boot 2 上的单元测试禁用 Flyway,但未能成功。
我从 Spring Boot 的文档中了解到,这样做的属性从 flyway.enabled 更改为 spring.flyway.enabled,并将其添加到我的测试应用程序配置文件中(如下所示)。
spring:
datasource:
url: jdbc:h2:mem:db
jpa:
hibernate:
ddl-auto: create
flyway:
enabled: false
这个配置好像一点效果都没有,Flyway 自动配置依然被调用。
我还尝试为单元测试创建一个单独的自动配置类,我在其中添加了@EnableAutoConfiguration(exclude = FlywayAutoConfiguration.class),但这次尝试和上一次一样失败了。
【问题讨论】:
-
似乎这应该适用于所有配置文件,您可能需要在 spring.profiles=test 下找到它,以便它仅在测试时禁用。
-
当您尝试读取此属性的值时,例如
@Value("${spring.flyway.enabled}")是否在您的测试类中打印false? -
@KarolDowbecki 奇怪的是,Spring 无法注入这个或我尝试检查的任何其他属性,所以现在我怀疑我可能错过了其他一些配置。谢谢,这个问题让我反过来想:)
-
@renke 属性解析应该是开箱即用的,你必须在测试自动配置中破坏了一些东西。你在用
@SpringBootTest和@RunWith(SpringRunner.class)吗?
标签: java spring-boot flyway