将测试结果文档上传到 Azure 测试计划或 TFS 2018 中的测试中心

Upload test result documents to Azure Test Plans or the Test hub in TFS 2018

我正在我的一个 C# 库中开发 API 以将测试结果文档(例如日志文件、捕获的屏幕截图或任何 zip 文件)从本地文件夹上传到所需的测试用例编号在测试中心的测试计划下。 我正在使用 TFS 2018。

任何人都可以帮我编写代码片段来实现此功能。

目前我可以通过以下代码行与服务器建立连接:

        VssClientCredentials vssClientCred = new VssClientCredentials();
        vssClientCred.Storage = new VssClientCredentialStorage();
        VssConnection connection = new VssConnection(new Uri("TestHubServerURL"), vssClientCred);

        TestManagementHttpClient tManageHttp = connection.GetClient<TestManagementHttpClient>();

        TestResultDocument tdoc = new TestResultDocument();
        TestResultDocument tRun = tManageHttp.PublishTestResultDocumentAsync(tdoc, ProjectName, TestRunID).Result;

但现在我卡住了,我没有办法实现“PublishTestResultDocumentAsync”,或者我是否需要使用任何其他方式来实现此功能?

我试着用谷歌搜索,但没有得到任何示例的帮助。

提前谢谢大家。

我猜你是想将测试结果文件上传到测试中心运行选项卡下的测试运行结果].

您可以使用CreateTestRunAttachmentAsync方法将测试结果文件上传到其测试运行。请参阅以下示例:

string teamProjectCollectionUrl = "http://tfs2018:8080/tfs/DefaultCollection";
string Project = "projectName";
VssConnection _connection = new VssConnection(new Uri(teamProjectCollectionUrl), winCred);

TestManagementHttpClient tManageHttp = _connection.GetClient<TestManagementHttpClient>();
string path = "C:\test\image.png";
string stream = Convert.ToBase64String(File.ReadAllBytes(path));

TestAttachmentRequestModel att = new TestAttachmentRequestModel(stream, "pic.png", "", null);

var res = tManageHttp.CreateTestRunAttachmentAsync(att, Project, "runId").Result;

如果要将测试结果文档上传到特定测试用例的结果。您可以使用 CreateTestResultAttachmentAsync 方法。

var res = tManageHttp.CreateTestResultAttachmentAsync(att, Project, "runId", "resultId").Result;

如果您尝试将测试结果文档上传到测试中心测试计划下所需的测试用例编号。您可能需要在 Microsoft.TeamFoundation.WorkItemTracking.WebApi 中使用 CreateAttachmentAsyncUpdateWorkItemAsync 方法,因为测试用例是一种工作项。