2012-06-28 70 views
1

如何從Team Foundation Server中刪除測試用例?我採取了以下幾點:如何從Team Foundation Server中刪除測試用例

  • 首先,我從this website安裝Team Foundation Server電動工具。

  • 其次,我輸入了以下到VS命令窗口:witadmin destroywi /收集:服務器名稱/ ID:測試用例ID

我收到以下錯誤消息從VS命令提示符:命令「 witadmin「無效。

我甚至試圖從Windows命令提示符作爲普通用戶運行此命令,並選擇「以管理員身份運行」,但在每種情況下,我都會收到相同的錯誤消息,指出「命令」witadmin「無效」。 ..

+0

是否當您嘗試運行witadmin時顯示確切的消息?你能發佈一個屏幕截圖嗎? –

+0

添加了一個可以根據WIQL查詢刪除工作項的控制檯應用程序示例 –

回答

5

witadmin不是TFS電動工具的一部分,應該從Visual Studio命令提示符處提供,默認安裝Visual Studio和Team Explorer。

如果由於任何原因無法使用,您應該能夠在「c:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE」或等效路徑中找到它安裝在別處。

不應該有參數名稱和參數本身和多個ID之間的空間可以用逗號界定他們指定:

witadmin destroywi /collection:host\collection /id:3,5,7 

編輯,包括從OP新要求

如果您需要更多的靈活性來確定哪些工作項目將被銷燬,您應該訴諸Team Foundation的客戶端API。在下面的示例中,我創建了一個接收兩個參數的控制檯應用程序:團隊項目的名稱和WIQL查詢:

using System; 
using System.Linq; 
using Microsoft.TeamFoundation.WorkItemTracking.Client; 

namespace DelWi { 
    class Program { 
     static void Main(string[] args) { 
      var store = new WorkItemStore(args[0]); 
      WorkItemCollection workItems = store.Query(args[1]); 
      if (workItems.Count == 0) { 
       Console.WriteLine("No work items with the specified criteria."); 
      } 
      var query = from workItem in workItems.Cast<WorkItem>() 
         select workItem.Id; 
      foreach (var item in store.DestroyWorkItems(query)) { 
       Console.WriteLine("{0}\t{1}", item.Id, item.Exception.Message); 
      } 
      Console.WriteLine("Press any key to continue..."); 
      Console.Read(); 
     } 
    } 
} 

一旦編譯,你可以把它傳遞參數,如:

DelWi.exe "host\defaultcollection" "SELECT * FROM WorkItems WHERE [System.TeamProject] = 'The Best Team Project Ever' AND [System.WorkItemType] = 'Test Case' AND [System.Id] > 34 AND [System.Id] < 37" 

但要小心,因爲如果您沒有正確指定查詢,最終可能會刪除比您想要的更多的工作項目。

+0

有沒有辦法從命令提示符或VS中一次刪除多個測試用例? – NealR

+0

是的,您可以指定多個由逗號分隔的ID,不含空格。更多信息可以找到調用witadmin destroywi /? –

+0

對不起,我應該更具體。你是否知道刪除大量測試用例的方法,而不必指定每個單獨的測試用例(即從100到200)?我們有超過400個需要去... – NealR