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

时间:2018-02-28 15:31:16

标签: c# visual-studio visual-studio-2015 mstest tfs2015

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

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

任何在testrun中附加文件的方法,可以将它们添加到最后一个测试中,也可以将它们附加到测试运行中?

1 个答案:

答案 0 :(得分:1)

使用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);