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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将结果文件添加到AssemblyCleanup中的TestContext相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

以上是关于将结果文件添加到AssemblyCleanup中的TestContext的主要内容,如果未能解决你的问题,请参考以下文章

如何添加到 node.js 中的现有 json 文件

如何将 mySQL 数据库中的结果保存到 python 中的文件或变量中?

如何为每次执行将过程结果存储在 SQL Server 中的新(单个)文本文件中

我们可以将屏幕截图作为附件添加到 Azure 管道中的测试结果吗

无法将主机添加到已知主机列表 - 意外删除了我的 .ssh 文件夹中的所有文件

录制音频,添加效果,然后将结果保存到音频文件