如何禁用Javers进行集成测试?

时间:2018-11-04 04:35:38

标签: spring-boot spring-data-rest javers

我将Javers 3.11.2与Spring Boot 1.5.17一起使用。当我尝试在嵌入式数据库上运行集成测试时,我仍然看到每次都创建Javers表。

有没有一种方法可以在这些测试期间禁用Javers,以便不会每次都创建这些表?

2 个答案:

答案 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/