0

我正在我的一个 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”,还是我需要使用任何其他方式来实现这个功能?

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

谢谢大家。

4

1 回答 1

3

我猜您的意思是将测试结果文件上传到Test hub的Runs选项卡下的测试运行结果中。

在此处输入图像描述

您可以使用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;

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

于 2020-10-02T08:34:01.647 回答