VSTS中为测试步骤结果(ITestStepResult)附加截图失败求助
解决VSTS测试步骤截图无法加载的问题
嘿,我之前处理过类似的Azure DevOps(原VSTS)测试附件上传问题,你现在的代码其实只完成了本地附件对象的创建和关联,但没触发真正的上传操作,所以截图才会显示在步骤列表里却无法加载。
给你两个可行的修正方案:
方案1:添加显式保存操作
你当前的代码创建了附件并关联到步骤结果,但缺少了把这些更改同步到服务器的关键一步。只需要在添加附件后调用Save()方法即可:
ITestAttachment attachment = stepResult.CreateAttachment(screenShotPath); stepResult.Attachments.Add(attachment); // 关键:保存步骤结果,触发附件上传到服务器 stepResult.Save();
方案2:用流方式创建并确保全流程保存
如果你的截图是从内存流获取的(比如直接从截图工具生成的流),可以用流重载来创建附件,同时确保整个测试运行的更改都被提交:
using (FileStream stream = new FileStream(screenShotPath, FileMode.Open, FileAccess.Read)) { // 指定文件名和MIME类型,帮助DevOps正确识别附件类型 ITestAttachment attachment = stepResult.CreateAttachment(stream, "测试步骤截图.png", "image/png"); stepResult.Attachments.Add(attachment); // 先保存步骤结果 stepResult.Save(); // 如果是整个测试运行,别忘了保存测试运行对象 testRun.Save(); }
几个额外的检查点
- 确认你的访问令牌(PAT)或服务账号拥有测试管理的写入权限,权限不足可能导致上传失败但没有明显报错。
- 检查截图文件路径是否正确,确保程序能正常读取该文件(比如路径拼写错误、文件权限问题都可能导致上传失败)。
- 如果批量处理多个测试步骤,建议在所有附件添加完成后统一保存测试运行,避免频繁请求影响性能。
你说截图已经显示在步骤下,这说明对象关联是成功的,只是服务器没收到实际的文件,所以触发保存操作就能解决这个问题啦。
内容的提问来源于stack exchange,提问作者AlwaysLearning
相关产品推荐
相关产品推荐

