我将Javers 3.11.2与Spring Boot 1.5.17一起使用。当我尝试在嵌入式数据库上运行集成测试时,我仍然看到每次都创建Javers表。
有没有一种方法可以在这些测试期间禁用Javers,以便不会每次都创建这些表?
答案 0 :(得分:1)
免责声明:我从未使用过Javers。
通常,在“集成测试”中禁用某些功能意味着您不想加载某些豆(在这种情况下是Javers的)。
这意味着您必须将它们从Spring Boot可用的配置列表中排除。
如果您使用的是javers自动配置模块,则它必须在其自己的“ spring.factories”文件(可以在jar中找到)中提供用于自动配置的文件。
查找其Java代码,看看是否在某些东西(例如属性bean等)上具有“ @Conditional”(如果有),然后创建一个用于集成测试的配置文件,该配置文件将以javers中有条件的方式配置bean。 t通过,因此不会创建Bean
如果没有类似这样的条件,则必须排除整个配置。通常可以通过注释@SpringBootApplication(exclude=<JaversAutoconfiguration goes here>
但是,这将同时将其关闭以用于生产用途,这显然不是您想要的。因此,对于“生产”配置文件,您必须将其作为常规配置(而不是自动配置)导入,对于集成测试配置文件,则不需要此配置。
答案 1 :(得分:1)
有一种简单的方法,放:
javers:
sqlSchemaManagementEnabled: false
在您的application-test.yml
中。参见https://javers.org/documentation/spring-boot-integration/