用测试资源管理器运行单元测试

Visual Studio 测试集成单元测试在您的开发过程的 Explorer 帮助。 可以从运行多个测试来解决方案中的项目,然后从测试是成品代码项目的选件类。 测试项目可以使用不同的单元测试框架。 在本主题中,您可以了解:

本节内容

单元测试框架和测试项目

运行测试资源管理器

  • 运行测试

  • 运行在每次生成后测试

查看测试结果

  • 查看测试详细信息

  • 查看测试方法的源代码

分组和筛选测试列表

  • 分组测试列表

  • (按特征

  • 搜索和筛选测试列表

调试单元测试

分析单元测试代码复盖率

诊断测试方法性能问题

外部资源

  • 指南

单元测试框架和测试项目

Visual Studio 包含测试框架托管代码和本机代码的 Microsoft 单元。 但是,测试资源管理器还可以运行所有单元测试都实现了测试资源管理器适配器的结构。 有关安装第三方单元测试的更多信息,请参见结构 如何:安装第三方单元测试框架

测试资源管理器中运行来自多个测试来解决方案中的项目,然后从测试是成品代码项目的选件类。 测试项目可以使用不同的单元测试框架。 当测试代码时忽略目标代码的语言,针对 .NET framework 编写,测试项目中编写任何 .NET 语言。 必须测试本机 C/C++ 代码项目使用 c. c++ 单元测试框架。

本节内容

运行测试资源管理器

在生成测试项目时,测试将出现测试管理器。 如果测试资源管理器中不可见,选择在 Visual Studio 的菜单上的 测试,选择 窗口,然后不选择 测试资源管理器

单元测试资源管理器

当您运行的是,编写,并在 未通过的测试通过的测试跳过测试未运行的测试的默认值组中重新运行测试,测试资源管理器中显示结果。 可以将来测试您资源管理器的测试组。

您可以执行大量工作,查找组织,并从运行测试资源管理器工具栏测试。

从测试资源管理器工具栏运行测试

Hh270865.collapse_all(zh-cn,VS.110).gif运行测试

在解决方案中运行所有测试,所有在组中的测试设置,或测试选择。 执行下列操作之一:

  • 若要运行所有在解决方案选择该测试,全部运行

  • 若要运行中的所有默认值组中选择该测试,运行 ... 然后选择菜单上的组。

  • 选择单个要运行的测试,打开选定的快捷菜单测试然后选择 运行所选测试

在测试运行,通过或失败栏位于测试资源管理器窗口顶部的进行动画处理。 在测试结束时请运行,通过或失败条变为绿色,如果所有测试通过或启用红色,如果有任何测试失败。

Hh270865.collapse_all(zh-cn,VS.110).gif运行在每次生成后测试

警告

在每次生成后,在最终的 Visual Studio 仅支持运行单元测试。

生成后运行

若要运行单元测试,每本地生成,选择标准菜单后的 测试,选择在测试资源管理器工具栏中 生成后运行测试

本节内容

查看测试结果

当您运行的是,编写,并在 未通过的测试通过的测试跳过测试未运行的测试组中重新运行测试,测试资源管理器中显示结果。 在"测试资源管理器底部的细节窗格中显示该测试运行的测试的摘要。

Hh270865.collapse_all(zh-cn,VS.110).gif查看测试详细信息

若要查看单个测试的详细信息,选择测试。

测试详细信息窗格将显示以下信息:

  • 源文件名和测试方法的行号。

  • 测试的状态。

  • 测试方法的运行所需的时间。

如果测试失败,也细节窗格中显示:

  • 该单元返回的消息测试的结构。

  • 堆栈跟踪,在测试失败时。

Hh270865.collapse_all(zh-cn,VS.110).gif查看测试方法的源代码

若要显示一个测试方法的源代码在 Visual Studio 版本,请选择测试然后选择快捷菜单 (键盘的 打开测试 :F12)。

本节内容

分组和筛选测试列表

测试资源管理器可用于您的测试组到预定义的类别。 大多数单元测试框架运行测试资源管理器中可以定义自己的类别,并且类/值对向您的测试组。 还可以筛选列表。匹配字符串测试属性。

Hh270865.collapse_all(zh-cn,VS.110).gif分组测试列表

若要更改测试进行组织,在 分组依据 选择按钮 测试资源管理器的分组按钮 旁边的下箭头的方法和选择新的分组条件。

测试资源管理器组

组合

描述

持续时间

组在执行时测试:

结果

按执行测试结果:未通过的测试跳过测试通过的测试

特征

组测试 bycategory/值对中定义。 指定特征的类别和值的语法由定义的单元测试框架。

项目

组测试名为项目。

Hh270865.collapse_all(zh-cn,VS.110).gif(按特征

特征通常是类别名称/值对,但是,它也可能是某个类别。 特征可以指派给标识的方法,当通过单元测试中的测试方法结构。 单元测试框架可以定义特征的类。 可以将值添加到特征类别定义自己的类别名称/值对。 指定特征的类别和值的语法由定义的单元测试框架。

例如,通过使用 TestPropertyAttribute,Microsoft 单元测试管理的 apps 的结构,您定义特征的名称/值对。 Microsoft 单元测试框架还包含这些预定义的特征:

特征

描述

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.OwnerAttribute ]

所有者类别由定义的单元测试框架和需要提供所有者的字符串值。

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute ]

优先级类别由定义的单元测试框架和需要提供优先级的整数值。

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryAttribute ]

TestCategory 属性可以提供类,不包含值。 TestCategory 属性定义的类别也可以是 TestProperty 特性中的类。

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute ]

TestProperty 属性可以定义特征的类/值对。

在 test C++ 的 Microsoft 单元的特征结构

若要定义特征,请使用 TEST_METHOD_ATTRIBUTE 宏。 例如,定义特征名为 TEST_MY_TRAIT:

#define TEST_MY_TRAIT(traitValue) TEST_METHOD_ATTRIBUTE(L"MyTrait", traitValue)

若要使用定义的特征在单元测试:

BEGIN_TEST_METHOD_ATTRIBUTE(Method1)
    TEST_OWNER(L"OwnerName")
    TEST_PRIORITY(1)
    TEST_MY_TRAIT(L"thisTraitValue")
END_TEST_METHOD_ATTRIBUTE()

TEST_METHOD(Method1)
{   
    Logger::WriteMessage("In Method1");
    Assert::AreEqual(0, 0);
}

C++ 特征的属性宏

描述

TEST_METHOD_ATTRIBUTE(attributeName, attributeValue)

使用 TEST_METHOD_ATTRIBUTE 宏定义特征。

TEST_OWNER(ownerAlias)

使用预定义的所有者特征指定测试方法的所有者。

TEST_PRIORITY(priority)

使用预定义的优先级特征分配相对优先级到测试方法。

本节内容

Hh270865.collapse_all(zh-cn,VS.110).gif搜索和筛选测试列表

可以使用测试浏览器筛选器限制在您查看并运行您的项目的测试方法。

当您键入一个字符串在测试 Explorer 搜索框并按 enter 时,测试列表筛选显示完全限定名包含该字符串的那些测试。

由不同的筛选条件:

  1. 打开在搜索框右侧的下拉列表。

  2. 选择新条件。

  3. 输入在引号范围的筛选器值。

搜索筛选器类别

备注

搜索不区分大小写并与指定字符串到标准值的任何部分。

限定符

描述

特征

搜索特征的类别和值匹配。 语法指定特征的类的和值由定义的单元测试框架。

项目

搜索测试项目名称匹配。

错误消息

搜索失败返回的用户定义的错误消息为与断言。

文件路径

搜索完全限定文件名测试匹配的源文件。

完全限定名称

搜索完全限定文件名测试命名空间、选件类和方法匹配的。

Output

搜索写入标准输出的用户定义的错误消息 (stdout) 或标准错误 (stderr) 编写。 指定输出消息的语法由定义的单元测试框架。

结果

搜索测试资源管理器类名称匹配:未通过的测试跳过测试通过的测试

本节内容

调试单元测试

可以使用测试资源管理器时启动调试会话测试。 逐句通过您的 Visual Studio 调试器的代码无缝获取您在该单元之间来回测试,并且该项目中。 开始调试:

  1. 在 Visual Studio 编辑器中,将一个或多个断点测试要调试的方法。

    备注

    由于测试方法可以按任意顺序运行,请在要调试的所有测试方法中的断点。

  2. 在测试资源管理器中,选择测试方法然后在快捷菜单上选择 调试所选测试

有关更多信息,有关调试器,请参见 使用 Visual Studio 进行调试

本节内容

分析单元测试代码复盖率

备注

单元测试代码复盖率只能在最终的 Visual Studio 和 Visual Studio premium。

您可以确定使用 Visual Studio 代码复盖率工具,由您的单元实际测试的数量您的产品代码。 在解决方案中运行所选测试的代码复盖率或在所有测试。

若要运行代码复盖率为测试在解决方案的方法:

  1. 选择在 Visual Studio 的菜单上的 测试 然后选择 分析代码覆盖率

  2. 从子菜单选择以下命令之一:

    • 选择测试 运行所选测试资源管理器的测试方法。

    • 所有测试 运行该解决方案中的所有测试方法。

代码复盖率结果"窗口显示由直线、函数、选件类、命名空间和模块执行的百分比的块产品代码。

有关更多信息,请参见使用代码覆盖率确定所测试的代码量

本节内容

诊断测试方法性能问题

若要诊断测试方法为什么在时间,选择方法测试资源管理器然后在快捷菜单上选择 配置文件。 请参见使用分析工具对应用程序性能进行分析

本节内容

外部资源

Hh270865.collapse_all(zh-cn,VS.110).gif指南

测试使用 Visual Studio 进行附带的 2012 版–第 2 章:单元测试:测试。

请参见

概念

使用单元测试验证代码

如何:作为 64 位进程运行单元测试