Jeninks CI:如何运行集成测试

时间:2019-07-28 02:57:06

标签: postgresql docker jenkins

我正在研究一个使用postgres作为后端的项目。詹金斯(Jenkins)用于ci。到目前为止,日常构建中仅包含单元测试,但是现在我们也希望包含集成测试。这需要一个api来访问数据库。数据库为Postgres,liquibase用作发布者。 我想做的就是通过詹金斯 1.创建数据库, 2.使用liquibase发布 3.运行集成测试

我创建了这个docker-compose

version: '3.4'

services:
  xyz.api:
    image: xyz.api
    build:
      context: .
      dockerfile: Dockerfile.ci
    ports:
      - 3001:3001
    depends_on:
      - publisher
    environment:
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "xyz"
      POSTGRES_DB: "xyz_db"    
  publisher:
    image: publish
    build:
      context: .
      dockerfile: Dockerfile-publish.ci
    entrypoint: ""
    depends_on:
      - postgresql
    command: ["./wait-for-it.sh", "db:5433"]
  postgresql:
    image: postgres:10.2
    environment:
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "xyz"
      POSTGRES_DB: "xyz_db"
    ports:
      - target: 5432
        published: 5433
        protocol: tcp


networks:
  xyzapi:

dockerfile-发布

FROM sequenceiq/liquibase:latest
WORKDIR /workspace

    # copy project and restore as distinct layers
    RUN liquibase --driver=org.postgresql.Driver --classpath=/usr/local/bin/postgresql-9.3-1102.jdbc41.jar --changeLogFile=xyz_ChangeLog.xml --url=jdbc:postgresql://postgresql:5433/xyz_db --username=postgres --password=xyz update

docker-compose up

 ---> Running in 18c564dac2de
Unexpected error running Liquibase: org.postgresql.util.PSQLException: The connection attempt failed.

尝试了包括docker-compose在内的许多选项后,我仍然无法正常工作。我认为我在这里并没有走上正确的轨道,而是在寻求有关如何在Jenkins中为依赖数据库的项目运行集成测试的提示或方向。

0 个答案:

没有答案