【发布时间】: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