2014-06-30 38 views
0

我試圖通過TFS發佈測試結果到Microsoft測試管理器,但我發現了以下錯誤嘗試發佈通過TFS API結果時:構建無法找到發佈結果TFS

Microsoft.TeamFoundation.TestManagement.Client.TestObjectNotFoundException: 
Build vstfs:///Build/Build/### cannot be found. 

我得到我的測試計劃和創建一個測試運行the way Microsoft suggests

plan = teamProject.TestPlans.Query(
    "SELECT * FROM TestPlan WHERE PlanName = '" + planName + "')[0]; 
ITestRun run = plan.CreateTestRun(true); 
run.AddTestPoints(testPoints, null); 
run.Save(); 

那麼爲什麼說構建無法找到?

回答

1

構建會定期從系統中清除,因此您可能需要確定自己是using the latest build。然後,您可以獲取最新的構建URI並將其與您的運行相關聯。

Uri GetLatestBuildURI(string projectName) { 
    Uri buildUri = null; 
    IBuildServer buildServer = _tfs.GetService<IBuildServer>(); 
    IBuildDetailSpec detailSpec = buildServer.CreateBuildDetailSpec(projectName); 
    detailSpec.MaxBuildsPerDefinition = 1; 
    detailSpec.QueryOrder = BuildQueryOrder.FinishTimeDescending; 
    IBuildQueryResult results = buildServer.QueryBuilds(detailSpec); 
    if (results.Builds.Length == 1) { 
     IBuildDetail detail = results.Builds[0]; 
     buildUri = detail.Uri; 
    } 
    return buildUri; 
} 

...

ITestRun run = plan.CreateTestRun(true); 
run.BuildUri = GetLatestBuildURI(projectName); 
run.AddTestPoints(testPoints, null); 
run.Save(); 
相關問題