【问题标题】:Unable to disable flyway for Unit Test Spring Boot无法为单元测试 Spring Boot 禁用 flyway
【发布时间】:2022-01-13 12:34:14
【问题描述】:

我已经构建了一个 Spring Boot 应用程序。我们正在使用 flyway 来管理我们的数据库迁移。每当我为我的应用程序启动 maven 构建时,它基本上都会尝试与数据库建立连接并失败。我正在尝试禁用此“连接到数据库”步骤。

下面是我尝试过的解决方案:

  1. 我创建了一个名为 test 的单独配置文件,并且我已禁用飞行路径,如下所示:
spring:
    application:
        name: ${APP_NAME:some-application}
        version:
            current: ${APP_CURRENT_VERSION:v2}
        env:
            APP_LOGGING_LEVEL: ${APP_LOGGING_LEVEL:INFO}
    flyway:
        enabled: false
    datasource:
        driver: ${RDS_DRIVER:com.mysql.jdbc.Driver}
        url: // some FB url
        username: // some DB username
        password: // some DB password
...
...
...
  1. 我已使用@ActiveProfiles("test") 将test 的配置文件分配给所有单元测试文件,如下所示:
@SpringBootTest
@RunWith(SpringRunner.class)
@DirtiesContext
@AutoConfigureWebTestClient
@Slf4j
@ActiveProfiles("test")
class RefreshExternalCacheTest {
    @Autowired
    private RedisAdapter redisAdapter;
...
...
...
}

即使通过 application-test.yml 文件禁用它并将此配置文件应用于所有单元测试文件,它仍在尝试建立与 DB 的连接。当我们通过 Jenkins 运行构建时,这会导致单元测试失败。

有没有办法在运行单元测试时禁用此设置?

【问题讨论】:

    标签: spring-boot jenkins


    【解决方案1】:

    根据您的 Spring Boot 版本,您需要修改您的应用程序* yml。你可以在这里找到选项/配置How to disable flyway in a certain spring profile?

    【讨论】:

    • 我使用的是 Spring Boot 版本 2.5.5。对于大于 2 的 spring 版本,您共享的链接说使用我已经在使用的 spring.flyway.enabled 属性。
    猜你喜欢
    • 2019-03-30
    • 2016-11-29
    • 2019-05-10
    • 1970-01-01
    • 2016-05-28
    • 2015-09-19
    • 2018-09-23
    • 2018-08-06
    相关资源
    最近更新 更多