如何使用 Node.js 服务器为 Cypress 测试创建 Dockerfile

How to create Dockerfile for Cypress tests with Node.js server

我有我的赛普拉斯测试,而且,我有一些与远程数据库一起工作的服务,最重要的是,Node.js 我需要在出现错误时发送电子邮件的服务器。项目结构如下所示:

我已经创建了 Dockerfile,但它似乎不起作用:

FROM cypress/included:9.4.1

WORKDIR /e2e-test

COPY package.json /e2e

RUN npm install

COPY . .

VOLUME [ "/e2e-test" ]

CMD ["npm", "run", "tests"]

所以,我需要做的是将此文件夹挂载到 docker 容器,然后通过 npm run tests 运行 本地服务器(注意:我只需要这个本地服务器用于 nodemailer,因为它只能在服务器端工作。

此外,脚本 npm run tests 看起来像这样。此脚本 运行s 服务器然后测试 - "tests": "npm run dev & npx cypress run"

我该如何实施?

可以这样做:

Dockerfile:

FROM cypress/base:16.13.0

RUN mkdir /e2e-test

WORKDIR /e2e-test

COPY package.json ./

RUN npm install

COPY . .

ENTRYPOINT ["npm", "run", "tests"]

然后使用下一个命令开始此操作(例如在 Makefile 中):docker run -it -v $PWD:/e2e-test -w /e2e-test e2e-tests

这样,我们就可以在node服务器上工作,让它发送邮件,同时,我们将挂载卷。