在我的Azure DevOps构建任务中,我运行了赛普拉斯测试。如果测试失败,则取消构建。但是我想在赛普拉斯发布测试结果后再执行另一个任务。
我已经在pipeline.yml文件中尝试了此任务:
- task: PowerShell@2
inputs:
targetType: "inline"
script: "yarn test:cypress"
errorActionPreference: "continue"
displayName: "start server and run cypress"
但这似乎没有任何作用。
我尝试将-ErrorAction 'Continue'
添加到脚本中
"start": "npm-run-all -s build:shared-web run:shell",
"cy:run": "cypress run -ErrorAction 'Continue'",
"test:cypress": "start-server-and-test start http://localhost:3000 cy:run"
但这失败了:
错误:未知选项:-E
似乎Cypress将ErrorAction
视为Cypress参数。
那么,如果任务失败,继续构建的正确方法是什么?
答案 0 :(得分:2)
您可以将以下内容添加到任务中:
continueOnError: true
现在,即使测试失败,构建也将继续运行。
如果在测试失败的情况下要使构建失败,但只想运行一个任务来发布结果,则可以将其添加到“发布测试”任务中:
condition: always()
现在,发布任务将始终运行,即使测试失败,构建也将被取消/失败。