在 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);
我正在尝试将文件添加到测试中 运行 在 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);