我使用的是Javers 3.11.2和Spring Boot 1.5.17。当我尝试在嵌入式数据库上运行集成测试时,我仍然看到每次都会创建Javers表。
有没有办法在这些测试期间禁用Javers,这样就不会每次都创建这些表?
发布于 2018-11-10 07:58:07
有一种简单的方法,放入:
javers:
sqlSchemaManagementEnabled: false在你的application-test.yml里。请参阅https://javers.org/documentation/spring-boot-integration/
发布于 2018-11-04 13:08:21
免责声明:我从未使用过Javers。
一般来说,在“集成测试”中禁用某些东西意味着您不想加载一些bean(在本例中是Javers )。
这意味着,反过来,您必须将它们排除在spring boot使用的配置列表之外。
如果您正在使用javers自动配置模块,那么它必须在自己的"spring.factories“文件(可以在jar中找到)中提供一个用于自动配置的文件。
找到它的java代码,看看它是否有一些"@Conditional on某些东西(属性bean等)“。如果已经通过,则为集成测试创建一个配置文件,该配置文件将以javers中的条件无法通过的方式配置bean,因此不会创建bean
如果它没有这样的条件,你将不得不排除整个配置。它通常可以通过注释@SpringBootApplication(exclude=<JaversAutoconfiguration goes here>来完成
然而,这也会将其关闭用于生产用途,这显然不是您想要的。因此,对于"production“配置文件,您必须将其作为常规配置(而不是自动配置)导入,而对于集成测试配置文件,您将不需要这样做。
https://stackoverflow.com/questions/53137774
复制相似问题