【问题标题】:Run mocha unit-test on docker-compose images在 docker-compose 图像上运行 mocha 单元测试
【发布时间】:2019-04-11 14:33:43
【问题描述】:

我在nodeJs中有一个api,它在微服务下运行。 到目前为止它有效,我接下来要做的是能够在这些图像上运行单元测试(mocha)。

docker-compose.yml:

version: '3'

services:   db:
    image: mongo
    ports:
      - 27017:27017

  db-seeds:
    build: ./services/mongo-seeds
    links:
      - db

  gateway:
    build: ./services/gateway
    ports:
      - 4000:4000
    depends_on:
      - A
      - B
      - C

  A:
    build: ./services/A
    ports:
      - 4003:4000
    depends_on:
      - db

  B:
    build: ./services/B
    ports:
      - 4001:4000
    depends_on:
      - db

  C:
    build: ./services/C
    ports:
      - 4002:4000
    depends_on:
      - db

一个 DockerFile:

FROM node:latest
COPY . /src
WORKDIR /src
RUN yarn
EXPOSE 4000
CMD yarn start

到目前为止,我所做的是制作另一个 docker-compose 文件,该文件将运行其他 docker 文件(DockerFile.test):

FROM node:latest
COPY . /src
WORKDIR /src
RUN yarn
EXPOSE 4000
CMD yarn test

也试过了:

FROM node:latest
COPY . /src
WORKDIR /src
RUN yarn
EXPOSE 4000
CMD yarn start
RUN sleep 240
CMD yarn test

它们都失败了,此时纱线测试在我的网关和服务器启动之前启动。我想做的是启动我的服务器,然后在图像中运行我的单元测试,但我是 docker 新手,缺乏如何实现它的知识。

纱线测试:

"test": "NODE_ENV=test ./node_modules/.bin/mocha"

【问题讨论】:

    标签: node.js docker docker-compose mocha.js


    【解决方案1】:

    您必须在与您的 docker-compose 文件相同的主机上运行 mocha。这也可以是 docker 镜像(如果需要,可以使用 docker-compose 启动;)

    在运行纱线测试之前,您必须使用您的服务运行 docker-compose。

    • 使用 docker 和 docker-compose 和节点创建/使用 Dockerfile(针对您的情况)
    • 复制您的源代码(docker-compose.yml 和其他相关源代码)
    • 在上面运行 docker-compose up -d
    • 对其进行纱线测试

    CloudFoundry 或 OpenStack 等工具可能会完成这项工作。 如果你在 CloudFoundry,我可以给你具体的细节。

    要连接多个命令,请使用 unix-cli 语法:

    RUN  docker-compose up -d && \
         service1 && \
         yarn test
    

    【讨论】:

    • 知道了,它有帮助,即:docker-compose run service_name yarn test。你知道我是否可以链接多个服务参数,即:docker-compose run service1 service2 service3 yarn test 吗?
    • 如果答案正确并解决了问题,您可以投票 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 2017-12-18
    相关资源
    最近更新 更多