Azure Devops向Xray Cloud multipart导入测试结果报curl 26错误如何解决
问题修复方案
核心错误原因
curl错误码26的本质是无法读取你指定的本地文件,你的配置存在3个明确问题:
- 路径分隔符使用错误:你使用了Windows风格的反斜杠
\作为路径分隔符,但Bash环境下(不管运行在Linux/macOS还是Windows agent)都默认把反斜杠识别为转义字符,会直接忽略掉后面的路径分隔作用,比如path\issueFields.json会被解析为pathissueFields.json,自然找不到对应文件。 - 语法错误:第二个curl命令的末尾多了一个多余的双引号,会导致后续参数解析异常。
- 缺少前置校验逻辑,无法快速定位是token获取失败还是文件不存在的问题。
修复后的脚本示例
# 静默获取token,避免多余日志输出 token=$(curl -s -H "Content-Type: application/json" -X POST --data '{ "client_id": "$(client_id)","client_secret": "$(client_secret)" }' https://xray.cloud.xpand-it.com/api/v1/authenticate| tr -d '"') # 调试校验(可在问题解决后删除) echo "token获取状态:长度为${#token}" pwd # 打印当前工作目录,确认路径根目录正确 ls -la path/issueFields.json path/target/surefire-reports/TEST-TestSuite.xml path/testIssueFields.json # 确认所有待上传文件都存在 # 执行上传,路径改为正斜杠,删除末尾多余引号 curl -H "Content-Type: multipart/form-data" -X POST \ -F info=@path/issueFields.json \ -F results=@path/target/surefire-reports/TEST-TestSuite.xml \ -F testInfo=@path/testIssueFields.json \ -H "Authorization: Bearer $token" \ https://xray.cloud.xpand-it.com/api/v1/import/execution/testng/multipart
额外注意事项
如果你的流水线运行在Windows agent上,也可以选择把路径用单引号包裹,将反斜杠转义为\\,但更推荐统一使用正斜杠/,跨系统兼容性更好。如果调试时ls命令提示文件不存在,需要检查你的测试任务生成报告的输出路径,和你脚本中写的路径是否一致。
内容的提问来源于stack exchange,提问作者vladys2019
相关产品推荐
相关产品推荐

