在 AssemblyCleanup 中将结果文件添加到 TestContext

Adding result files to TestContext in AssemblyCleanup

我正在尝试将文件添加到测试中 运行 在 TFS 中显示,而不是将它们添加到单独的测试中。仅将文件添加到最后一个测试也是一种选择。

通过将 MSTest 的 TestContext 存储在静态变量中,我可以在测试的 AssemblyCleanup 方法中访问它 class 并使用 AddResultFile() 添加我的文件。但是,这些文件不会作为测试 运行 的附件出现在 TFS 的网站 UI 中,也不会作为上次测试的附件出现。

有什么方法可以在测试中附加一次文件运行,将它们添加到最后一个测试或将它们附加到测试运行?

使用 TFS REST API 将是一个不错的选择,您可以轻松地将附件添加到测试 运行 或测试结果中。

将文件附加到测试 运行:

POST https://{instance}/DefaultCollection/{project}/_apis/test/runs/{run}/attachments?api-version={version}

Content-Type: application/json

{
  "stream": { string },
  "fileName": { string },
  "comment": { string },
  "attachmentType": { string }
}

将文件附加到测试结果:

POST https://{instance}/DefaultCollection/{project}/_apis/test/runs/{run}/results/{result}/attachments?api-version={version}

Content-Type: application/json

{
  "stream": { string },
  "fileName": { string },
  "comment": { string },
  "attachmentType": { string }
}

您可以使用以下代码获取文件的 "stream" 字符串:

Byte[] bytes = File.ReadAllBytes("path");
String file = Convert.ToBase64String(bytes);