【问题标题】:How to delete test cases from Team Foundation Server如何从 Team Foundation Server 中删除测试用例
【发布时间】:2012-06-29 07:21:02
【问题描述】:

如何从 Team Foundation Server 中删除测试用例?我采取了以下步骤:

  • 首先我从this website 安装了 Team Foundation Server Power Tools。

  • 第二次我在VS命令窗口输入以下内容:witadmin destroywi /collection: server name /id: test case id

我从 VS 命令提示符收到以下错误消息:命令“witadmin”无效。

我什至尝试以普通用户身份从 Windows 命令提示符运行此命令,并选择“以管理员身份运行”,但在每种情况下,我都会收到相同的错误消息,指出“命令“witadmin”无效”.. .

【问题讨论】:

  • 这是您尝试运行 witadmin 时显示的确切消息吗?能发个截图吗?
  • 添加了一个控制台应用程序示例,该应用程序可以根据 WIQL 查询删除工作项

标签: visual-studio-2010 tfs


【解决方案1】:

witadmin 不是 TFS Power Tools 的一部分,应该在 Visual Studio 和团队资源管理器的默认安装上从 Visual Studio 命令提示符获得。

如果由于某种原因它不可用,您应该可以在“c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE”或等效路径(如果安装了 Visual Studio)找到它其他地方。

参数名称和参数本身之间不能有空格,可以用逗号分隔多个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"

但要小心,因为如果您没有正确指定查询,您最终可能会删除比您想要的更多的工作项。

【讨论】:

  • 有没有办法一次删除多个测试用例,无论是从命令提示符还是在 VS 中?
  • 是的,您可以指定多个 ID,以逗号分隔,不带空格。更多信息可以调用 witadmin destroywi /?
  • 对不起,我应该更具体一些。您是否知道无需指定每个单独的测试用例(即从 100 到 200)删除一大组测试用例的方法?我们有 400 多个需要去...
  • witadmin 不支持指定 id 间隔。您可以使用 msdn.microsoft.com/en-us/library/… 中描述的 WorkItemStore.DestroyWorkItems 通过代码实现您想要完成的任务
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 2016-03-09
  • 2014-08-13
  • 2017-06-25
  • 2018-09-11
  • 1970-01-01
  • 2010-09-15
相关资源
最近更新 更多