在运行测试时,CircleCi不使用test.properties数据库配置

时间:2019-08-29 14:47:12

标签: java postgresql spring-boot h2 circleci

我有一个Java Springboot应用程序,该应用程序在主软件包中使用PostgreSQL数据库,并且最近我已将单元测试切换为使用内存中的H2数据库,以消除对PostgreSQL的依赖。

这一切在本地都可以正常运行,但是在CircleCi中运行此代码时,它似乎仍然尝试使用PostgreSQL,导致我的所有测试失败。

这是我的CircleCi配置:

version: 2
jobs:
  build:
    docker:
      - image: circleci/openjdk:11.0.3-jdk-stretch

    working_directory: ~/repo

    environment:
      JVM_OPTS: "-Xmx3200m"
      GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2"

    steps:
      - checkout

      - restore_cache:
          keys:
            - v2-dependencies-{{ checksum "build.gradle" }}
            - v1-dependencies-

      - run: gradle dependencies

      - save_cache:
          paths:
            - ~/.gradle
          key: v2-dependencies-{{ checksum "build.gradle" }}

      - run: gradle test

application.properties文件:

spring.datasource.url=jdbc:postgresql://localhost:5432/absences
spring.datasource.username= admin
spring.datasource.password= admin

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

spring.jpa.hibernate.ddl-auto = update

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

和test-application.properties文件:

jdbc.driverClassName=org.h2.Driver
jdbc.url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1

hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.hbm2ddl.auto=create

此外,我已将测试类切换为使用测试属性文件:

@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(locations = {"classpath:test-application.properties"})
public class AbsenceServiceImplTests {

以下是失败的构建的链接:https://circleci.com/gh/skunkwerksuk/timekeeper-absences/36

如果您想了解更多信息,这里是代码存储库的链接:https://github.com/skunkwerksuk/timekeeper-absences/tree/test-db-fix

对此有任何帮助,我已经查看了CircleCi上的许多文档和论坛,似乎没有人对此问题有任何答案。

0 个答案:

没有答案