通过Dockerfile在Azure DevOps管道中运行Cypress测试

时间:2020-01-17 22:50:49

标签: azure-devops azure-pipelines cypress

我创建了一个Dockerfile,该文件创建一个赛普拉斯映像,安装所有依赖项,复制必要的文件夹以及CMD命令以运行测试。我能够在本地构建docker映像,并在本地运行映像时进行测试。

我正在尝试在Azure Devops管道中运行测试。我使用创建的Dockerfile创建了新的管道。在我的管道中,我能够构建cypress图像,但是在构建图像之后,测试并未运行。

我缺少什么?在管道中建立映像后,我是否需要运行映像?如果可以,我会在yaml文件中这样做吗?

1 个答案:

答案 0 :(得分:0)

运行映像时将执行CMD指令。映像创建后无法自动运行。因此,您必须使用docker run。

您可以使用Powershell任务而不是docker任务来运行docker build and run命令。

在下面的示例中,我运行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命令中放入test执行命令,该命令只能运行图像时执行。