如何:使用测试类别分组和运行自动测试

通过测试类别,可以根据为各组测试分配的类别运行各组测试,无须保留测试列表。 测试类别是一种测试方法特性,可通过测试列表编辑器分配给一个或多个测试。

可以在测试类别中使用逻辑运算符,从而运行来自多个类别的测试,或将运行的测试仅限于属于多个类别的测试。 此外,在创建测试方法时很容易添加测试类别,创建测试方法后也无需维护测试列表。

下面的过程介绍如何为测试创建、分配、筛选和运行测试类别。

创建和分配测试类别

创建新的测试类别

  1. 在**“测试”菜单上,单击“窗口”,然后选择“测试视图”**。

    将显示**“测试视图”**窗口。

  2. 选择一个测试。

  3. 在选定测试的属性窗格中,单击**“测试类别”列中的省略号(“…”**)。

    此时将显示**“测试类别”**窗口。

  4. 在**“添加新类别”**字段中,键入新测试类别的名称。

  5. 单击**“添加”**。

  6. 单击**“确定”**。

    新的测试类别将分配给您的测试,而且提供给**“测试视图”**窗口中的其他测试使用。

为测试分配测试类别

  1. 在**“测试”菜单上,单击“窗口”,然后选择“测试视图”**。

    将显示**“测试视图”**窗口。

  2. 选择一个测试。

  3. 在选定测试的属性窗格中,单击**“测试类别”列中的省略号(“…”**)。

    此时将显示**“测试类别”**窗口。

  4. 在**“可用类别”**窗格中,选择要分配给测试的测试类别。 若要选择多个测试类别,请按 Shift+M。

  5. 单击**“>>”**。

    您选择的类别此时将显示在**“分配的类别”**窗格中。

  6. 单击**“确定”**。

手动向测试添加测试类别

  1. 在解决方案资源管理器中的测试项目中,打开包含相应单元测试的文件,然后找到要更改的单元测试方法。

    - 或 -

    在**“测试视图”**中,双击该单元测试并滚动到相应的单元测试方法。

  2. 在紧挨该测试方法声明的上方,为要分配给该测试的每个测试类别添加 [TestCategory()] 特性。 使用逗号分隔每个特性。

  3. 向每个 [TestCategory()] 特性添加用括号括起来的类别名称。 下面是一个方法示例,其中包含分配给该测试的三个测试类别,分别名为“Nightly”、“Weekly”和“ShoppingCart”:

    [TestCategory("Nightly"), TestCategory("Weekly"), TestCategory("ShoppingCart"), TestMethod()]
    public Void DebitTest()
    {
    }
    

移除测试类别

从测试中移除测试类别

  1. 在**“测试”菜单上,单击“窗口”,然后选择“测试视图”**。

    将显示**“测试视图”**窗口。

  2. 选择一个测试。

  3. 在选定测试的属性窗格中,单击**“测试类别”列中的省略号(“…”**)。

    此时将显示**“测试类别”**窗口。

  4. 在**“分配的类别”**窗格中,选择要从测试中移除的测试类别。 若要选择多个测试类别,请按 Shift+M。

  5. 单击**“<<”**。

    您选择的类别此时将显示在**“可用类别”**窗格中。

  6. 单击**“确定”**。

按类别筛选测试

按测试类别对“测试视图”窗口中的测试进行排序

  1. 在**“测试”菜单上,单击“窗口”,然后选择“测试视图”**。

    将显示**“测试视图”**窗口。

  2. 在**“测试视图”的工具栏上,单击左侧下拉列表中的箭头,然后选择“测试类别”**。

    默认为“[所有列]”。

  3. 在筛选文本框中,键入要作为筛选依据的类别的名称,然后按**“Enter”**。

    与您指定的类别相关联的测试将显示在“测试视图”中。

    默认为“<清除筛选器>”。

  4. (可选)单击**“测试名称”“项目”**列标题以对列表进行排序。

按类别运行测试

使用类别在“测试视图”中运行测试

  1. 在**“测试”菜单上,单击“窗口”,然后选择“测试视图”**。

    将显示**“测试视图”**窗口。

  2. 在**“测试视图”的工具栏中,单击左侧下拉列表中的箭头,然后选择“测试类别”**。

    默认为“[所有列]”。

  3. 在筛选文本框中,键入要作为筛选依据的类别的名称,然后按**“Enter”**。

    与您指定的类别相关联的测试将显示在“测试视图”中。

    默认为“<清除筛选器>”。

    提示

    在筛选要从“测试视图”中运行的测试时,不能将逻辑运算符用于测试类别。 只有在从命令行运行测试时才可以执行此操作。

  4. (可选)单击**“测试名称”“项目”**列标题以对列表进行排序。

  5. 单击该测试类别中要运行的测试。

  6. 按住 Shift 或 Ctrl 的同时单击以额外选择其他测试。

  7. 单击工具栏中的**“运行选定内容”**。

从命令行运行测试时,还可以基于分配给测试的类别,使用逻辑运算符 & (AND)、| (OR) 和 ! (NOT) 选择要运行的测试。

从命令行使用类别运行测试

  1. 打开 Visual Studio 命令提示符。

    为此,请单击**“开始”,依次指向“所有程序”“Microsoft Visual Studio 2010”“Visual Studio Tools”,然后单击“Visual Studio 10.0 命令提示”**。

    默认情况下,Visual Studio 命令提示在以下文件夹位置打开:

    <驱动器号>:\Program Files\Microsoft Visual Studio 10.0\VC

    提示

    若要更改命令提示符窗口默认情况下打开的文件夹,请单击“开始”,指向“Microsoft Visual Studio 2010”,指向“Visual Studio Tools”,右击“Visual Studio 10.0 命令提示”,再单击“属性”。 在“Visual Studio 10.0 命令提示属性”对话框中,可以更改“起始于”框中的默认文件夹的路径。

  2. 将目录更改为解决方案文件夹中测试容器(通常为测试项目的 .dll 文件)所在的位置,或者在步骤 3 中运行 MSTest.exe 程序时指定测试容器的完整路径或相对路径。

    若要标识解决方案文件夹,首先请标识 Visual Studio 的**“Projects”文件夹。 为此,请在 Visual Studio 中单击“工具”菜单上的“选项”,再单击“项目和解决方案”。 在“Visual Studio 项目位置”**下,将看到如下路径:

    <drive letter>:\Documents and Settings\<user name>\My Documents\Visual Studio\Projects

    解决方案文件夹通常是此**“Projects”**文件夹的子文件夹,如以下示例中的 Bank 文件夹:

    <drive letter>:\Documents and Settings\<user name>\My Documents\Visual Studio\Projects\Bank

  3. 若要运行同时分配给“Nightly”和“ShoppingCart”类别的测试,请使用 /testcontainer 和 /category 开关运行 MSTest.exe 程序:

    mstest /testcontainer:我的测试项目名称.dll /category:"Nightly&ShoppingCart"

    结果和摘要将显示在命令提示窗口中。

    提示

    可以在表达式中使用 AND 或 OR 来选择测试的类别,但不可在同一表达式中同时使用二者。

    有关更多信息,请参见如何:从命令行使用 MSTest 运行自动测试MSTest.exe 命令行选项

请参见

概念

定义对测试进行分组的测试类别