【问题标题】:How to disable Javers for integration tests?如何禁用 Javers 进行集成测试?
【发布时间】:2018-11-04 04:35:38
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    有一个简单的方法,把:

    javers:
      sqlSchemaManagementEnabled: false
    

    在您的application-test.yml 中。见https://javers.org/documentation/spring-boot-integration/

    【讨论】:

      【解决方案2】:

      免责声明:我从未使用过 Javers。

      一般来说,在“集成测试”中禁用某些东西意味着您不想加载一些 bean(在这种情况下是 Javers)。

      这意味着您必须将它们从 spring boot 使用的配置列表中排除。

      如果您使用 javers 自动配置模块,它必须在其自己的“spring.factories”文件(可以在 jar 中找到)中提供一个用于自动配置的文件。

      找到它的 java 代码,看看它是否有一些“@Conditional on something (property beans, etc.)”如果它有然后创建一个用于集成测试的配置文件,它将以 javers 中的条件配置方式配置 bean 不会' t 通过,因此不会创建 bean

      如果它没有类似这样的条件,则必须排除整个配置。通常可以通过注解@SpringBootApplication(exclude=<JaversAutoconfiguration goes here>

      但是,这也会将其关闭以供生产使用,这显然不是您想要的。因此,对于“生产”配置文件,您必须将其作为常规配置(而不是自动配置)导入,对于集成测试配置文件,您不需要它。

      【讨论】:

        猜你喜欢
        • 2018-05-04
        • 2021-06-07
        • 1970-01-01
        • 2018-07-16
        • 2019-09-24
        • 2018-06-26
        • 2019-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多