Azure Pipeline无法存储Cypress截图与视频:路径不存在错误排查求助
解决Azure Pipeline中Cypress截图/视频路径不存在问题
1. 先确认Cypress实际生成的文件位置
直接在Pipeline中添加命令,打印工作目录下的完整文件结构,避免盲目猜测路径:
- script: | dir $(System.DefaultWorkingDirectory) /s displayName: '查看当前工作目录所有文件'
执行后查看日志,找到screenshots或videos文件夹的实际路径。
2. 检查Cypress配置文件的路径设置
打开config.js,确认截图和视频的存储路径配置是相对路径(相对于启动Cypress的目录):
module.exports = { screenshotsFolder: './cypress/screenshots', videosFolder: './cypress/videos', // 其他配置... }
如果测试代码放在CypressTests子目录下,启动Cypress时必须进入该目录,否则相对路径会基于Pipeline的根目录生成,导致路径不匹配。
3. 确保Cypress在正确的工作目录执行
在Pipeline任务中指定workingDirectory,或者先切换到测试代码所在目录再执行命令:
方式一:使用Cypress任务指定工作目录
- task: Cypress@1 inputs: workingDirectory: 'CypressTests' # 你的测试代码根目录 command: 'run' browser: 'chrome'
方式二:通过脚本切换目录
- script: | cd CypressTests npx cypress run displayName: '运行Cypress测试'
4. 修正Pipeline中引用截图/视频的路径
如果需要发布截图或视频作为构建产物,路径要和实际生成的位置完全匹配。例如实际路径是$(System.DefaultWorkingDirectory)/CypressTests/cypress/screenshots,则发布任务配置如下:
- task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(System.DefaultWorkingDirectory)/CypressTests/cypress/screenshots' ArtifactName: 'CypressScreenshots' publishLocation: 'Container'
5. 验证代码拉取是否完整
检查Pipeline的checkout步骤日志,确认所有代码(包括CypressTests目录)都被正确拉取到了$(System.DefaultWorkingDirectory)下,避免因代码缺失导致路径不存在。
内容的提问来源于stack exchange,提问作者M17
相关产品推荐
相关产品推荐

