2012-10-02 68 views
5

我試圖通過使用TFS API來獲取測試計劃。TFS API TestManagementService總是返回空

TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://xxxxxxx:8080/tfs/DefaultCollection")); 

var service = (ITestManagementService)tfs.GetService(typeof(ITestManagementService)); 

變量「service」總是返回null。

你有什麼想法,爲什麼?

+0

tfs.GetService(typeof(WorkItemStore))返回存儲對象,但ItestManagementService返回null – cerezza

回答

2

也許你鏈接到的不同版本的引用程序集,混合不同版本的Visual Studio的組件?例如:

  • Microsoft.TeamFoundation.Client 11.0(VS 2012)
  • Microsoft.TeamFoundation.TestManagement.Client V12.0(VS 2013)

我有GetService<ITestManagementService>()同樣的問題總是返回null,即使GetService<VersionControlServer>()將返回不錯(非空)值。

發佈在MSDN - VersionControlServer always returns null上的解決方案適用於我:我引用了一些v11.0(VS2012)和v12.0(VS2013)程序集。更改所有對v11.0的引用爲我修復了它。

4

在調用Get Service命令之前,請確保您已通過團隊項目集合的身份驗證。這段代碼正常工作對我來說:

TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("https://tfs.companyname.com/tfs/DefaultCollection")); 
tpc.EnsureAuthenticated(); 

ITestManagementService service = tpc.GetService<ITestManagementService>();