【问题标题】:Running Cypress test in Azure DevOps Pipelines via Dockerfile通过 Dockerfile 在 Azure DevOps Pipelines 中运行 Cypress 测试
【发布时间】:2020-01-22 17:56:12
【问题描述】:
我创建了一个 Dockerfile,它创建了一个 cypress 映像、安装所有依赖项、复制必要的文件夹和 CMD 命令来运行测试。我能够在本地构建 docker 映像,并在本地运行映像时运行测试。
我正在尝试在 Azure Devops 管道中运行测试。我使用我创建的 Dockerfile 创建了一个新管道。在我的管道中,我能够构建 cypress 映像,但构建映像后测试未运行。
我错过了什么?在管道中内置图像后,我是否需要运行图像?如果是这样,我会在 yaml 文件中这样做吗?
【问题讨论】:
标签:
azure-devops
azure-pipelines
cypress
【解决方案1】:
运行镜像时要执行CMD指令。镜像构建后无法自动运行。所以你必须使用 docker run。
您可以使用 powershell 任务来运行 docker build 和 run 命令,而不是 docker 任务。
在下面的示例中,我运行 docker build 命令来构建我的 dockerfile,然后运行 docker run 命令来启动我的图像。然后就可以从powershell任务总结日志中查看执行结果了。
- powershell: |
cd $(system.defaultworkingdirectory) #cd to the directory where dockerfile resides.
docker build -t myapp .
docker run --rm myapp
如果你想使用 docker 任务来构建你的 dockerfile,你也可以尝试使用RUN 来执行你的 Cypress 测试,而不是将测试执行命令放在你的 dockerfile 中的 CMD 命令中,这只能在运行时执行图片。