如何使用 TFS Rest API 获取单元测试结果?
How to get unit test results using TFS Rest API?
如何使用 Rest 在 TFS 中检索构建的单元测试结果API?
构建定义使用 VNext(Visual Studio 2015 更新 3)。
var vssConnection = new VssConnection(_configurationSpec.TeamProjectCollection,
new VssClientCredentials());
_buildClient = vssConnection.GetClient<BuildHttpClient>();
您可以尝试在 powershell 脚本中使用此 Rest API 来获取相关步骤的日志。
GET https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/Fabrikam-Fiber-Git/_apis/build/builds/391/logs?api-version=2.0
会returnlogs1,logs2对应step1,step2.
{
"count": 4,
"value": [
{
"lineCount": 3,
"createdOn": "2015-07-16T19:53:19.747Z",
"lastChangedOn": "2015-07-16T19:53:19.92Z",
"id": 1,
"type": "Container",
"url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c/_apis/build/builds/391/logs/1"
},
{
"lineCount": 113,
"createdOn": "2015-07-16T19:53:29.387Z",
"lastChangedOn": "2015-07-16T19:53:29.44Z",
"id": 2,
"type": "Container",
"url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c/_apis/build/builds/391/logs/2"
},
例如:
只需获取步骤 4 的日志“测试程序集...”
build的测试结果保存在test运行s中,所以需要先获取build的test运行,然后从test[=13]中获取测试结果=].以下是代码示例:
class Program
{
static void Main(string[] args)
{
string ur = "https://xxxxxxx/";
TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(ur));
//Get build information
BuildHttpClient bhc = ttpc.GetClient<BuildHttpClient>();
string projectname = "Project";
int buildId = 1;
Build bui = bhc.GetBuildAsync(projectname,buildId).Result;
//Get test run for the build
TestManagementHttpClient ithc = ttpc.GetClient<TestManagementHttpClient>();
Console.WriteLine(bui.BuildNumber);
QueryModel qm = new QueryModel("Select * From TestRun Where BuildNumber Contains '" + bui.BuildNumber + "'");
List<TestRun> testruns = ithc.GetTestRunsByQueryAsync(qm,projectname).Result;
foreach (TestRun testrun in testruns)
{
List<TestCaseResult> testresults = ithc.GetTestResultsAsync(projectname, testrun.Id).Result;
foreach (TestCaseResult tcr in testresults)
{
Console.WriteLine(tcr.TestCase.Name);
Console.WriteLine(tcr.Outcome);
}
Console.ReadLine();
}
Console.ReadLine();
}
}
如果您尝试从 Azure DevOps 获取构建测试,您可以使用 Microsoft.TeamFoundationServer.Client nuget 包中可用的新方法:
// Get Test Management client
using var testMgmtClient = connection.GetClient<TestManagementHttpClient>();
// Get tests run for a certain build
var tests = testMgmtClient.GetTestRunsAsync(projectName, builds[0].Uri.AbsoluteUri, includeRunDetails: true).Result;
如何使用 Rest 在 TFS 中检索构建的单元测试结果API?
构建定义使用 VNext(Visual Studio 2015 更新 3)。
var vssConnection = new VssConnection(_configurationSpec.TeamProjectCollection,
new VssClientCredentials());
_buildClient = vssConnection.GetClient<BuildHttpClient>();
您可以尝试在 powershell 脚本中使用此 Rest API 来获取相关步骤的日志。
GET https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/Fabrikam-Fiber-Git/_apis/build/builds/391/logs?api-version=2.0
会returnlogs1,logs2对应step1,step2.
{
"count": 4,
"value": [
{
"lineCount": 3,
"createdOn": "2015-07-16T19:53:19.747Z",
"lastChangedOn": "2015-07-16T19:53:19.92Z",
"id": 1,
"type": "Container",
"url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c/_apis/build/builds/391/logs/1"
},
{
"lineCount": 113,
"createdOn": "2015-07-16T19:53:29.387Z",
"lastChangedOn": "2015-07-16T19:53:29.44Z",
"id": 2,
"type": "Container",
"url": "https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c/_apis/build/builds/391/logs/2"
},
例如:
只需获取步骤 4 的日志“测试程序集...”
build的测试结果保存在test运行s中,所以需要先获取build的test运行,然后从test[=13]中获取测试结果=].以下是代码示例:
class Program
{
static void Main(string[] args)
{
string ur = "https://xxxxxxx/";
TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(ur));
//Get build information
BuildHttpClient bhc = ttpc.GetClient<BuildHttpClient>();
string projectname = "Project";
int buildId = 1;
Build bui = bhc.GetBuildAsync(projectname,buildId).Result;
//Get test run for the build
TestManagementHttpClient ithc = ttpc.GetClient<TestManagementHttpClient>();
Console.WriteLine(bui.BuildNumber);
QueryModel qm = new QueryModel("Select * From TestRun Where BuildNumber Contains '" + bui.BuildNumber + "'");
List<TestRun> testruns = ithc.GetTestRunsByQueryAsync(qm,projectname).Result;
foreach (TestRun testrun in testruns)
{
List<TestCaseResult> testresults = ithc.GetTestResultsAsync(projectname, testrun.Id).Result;
foreach (TestCaseResult tcr in testresults)
{
Console.WriteLine(tcr.TestCase.Name);
Console.WriteLine(tcr.Outcome);
}
Console.ReadLine();
}
Console.ReadLine();
}
}
如果您尝试从 Azure DevOps 获取构建测试,您可以使用 Microsoft.TeamFoundationServer.Client nuget 包中可用的新方法:
// Get Test Management client
using var testMgmtClient = connection.GetClient<TestManagementHttpClient>();
// Get tests run for a certain build
var tests = testMgmtClient.GetTestRunsAsync(projectName, builds[0].Uri.AbsoluteUri, includeRunDetails: true).Result;