运行 docker-compose 图像上的 mocha 单元测试
Run mocha unit-test on docker-compose images
我在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"
您必须 运行 mocha 与您的 docker-compose 文件在同一主机上。这也可以是 docker 图像(如果需要,可以使用 docker-compose 开始 ;)
在 运行 纱线测试之前,您必须 运行 docker- 与您的服务组合。
- Create/Use 一个带有 docker 和 docker 的 Dockerfile-compose 和节点(对于你的情况)
- 复制你的来源(docker-compose.yml 和其他相关来源)
- 运行 docker-compose up -d on it
- 运行 纱线测试
像 CloudFoundry 或 OpenStack 这样的工具可以完成这项工作。
如果您使用 CloudFoundry,我可以为您提供具体细节。
要连接多个命令,请使用 unix-cli 语法:
RUN docker-compose up -d && \
service1 && \
yarn test
我在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"
您必须 运行 mocha 与您的 docker-compose 文件在同一主机上。这也可以是 docker 图像(如果需要,可以使用 docker-compose 开始 ;)
在 运行 纱线测试之前,您必须 运行 docker- 与您的服务组合。
- Create/Use 一个带有 docker 和 docker 的 Dockerfile-compose 和节点(对于你的情况)
- 复制你的来源(docker-compose.yml 和其他相关来源)
- 运行 docker-compose up -d on it
- 运行 纱线测试
像 CloudFoundry 或 OpenStack 这样的工具可以完成这项工作。 如果您使用 CloudFoundry,我可以为您提供具体细节。
要连接多个命令,请使用 unix-cli 语法:
RUN docker-compose up -d && \
service1 && \
yarn test