指定 Visual Studio 测试的测试设置

在运行时从 Visual Studio 测试或在 生成服务,测试框架可以收集数据 (如诊断跟踪信息,系统信息,或编码的 UI 测试的视频录制。 可以在测试计算机上模拟潜在瓶颈,还减少可用系统内存或模拟一个慢速网络。

Visual Studio 测试设置

如果应用程序在多台计算机上运行,则可以为每台计算机单独配置这些选择,然后选择哪个设备应该运行测试代码。

重要

.testsettings 和 .runsettings

如果您熟悉在 Visual Studio 中测试以前版本的,您将注意到名为 .testsettings 文件在单元不再包括测试项目。使用 .runsettings 文件,则新测试框架,介绍 Visual Studio 2012 中,可以配置。

如果使用的 .testsettings 文件,MSTest 测试框架将用于运行测试。这运行速度更慢并且不允许您运行来自第三方测试框架。

因此:

  1. 使用默认配置,就可以。

  2. 若要使其他文件可在一个测试期间,例如测试数据或配置文件,该文件添加到项目中并将 复制到输出 属性。如果不可行的,部署其他文件或使用 DeploymentItemAttribute 测试的内容选件类或方法。

  3. 如果要配置某些方面的测试运行例如部署目录或代码复盖率分析,使用一 .runsettings 文件。

  4. 使用一 .testsettings 文件配置诊断数据收集和设置为分布在多台计算机的控件测试。

    在 web 性能必须使用 .testsettings 文件,负载测试,并在编码的 UI 测试。

要求

  • Visual Studio 旗舰版或 Visual Studio 高级专业版或 Visual Studio 专业测试工具版

本主题介绍如何定义在 Visual Studio 中测试设置。 如果运行 Microsoft 系统测试测试管理器,请参见 使用 Microsoft 测试管理器为自动系统测试创建测试设置

何时使用测试设置文件?

当您希望:

  • 收集诊断数据来帮助隔离在应用程序中的 bug。

  • 要模拟的应用程序在生产环境中有时可能会遇到的潜在瓶颈。

  • 运行客户端、服务器和您在不同计算机上的应用程序的其他部分,验证是否在一个分布样式环境中的行为与预期相同。

  • 分配大量在不同的计算机之间测试。

  • 运行 web 性能,负载测试。 如果添加了一个 web 性能测试和负载测试 项目添加到解决方案,还将包含一个名为 .testsettings 文件。 可以编辑该文件。

警告

,如果使用的测试设置文件,单元测试的运行速度更慢。建议您不要使用具有单元测试的文件的测试设置。可以配置单元测试使用 .runsettings 文件。若要部署的附加文件,请使用 DeploymentItemAttribute

但是,web 性能和总是负载测试使用测试设置文件。

如何使用的测试设置文件?

添加测试设置文件到您的解决方案,然后选择要使用的配置。 您可以添加多个测试设置文件,如果您希望能够快速切换差异设置之间。

  1. 添加一个名为 .testsettings 文件添加到解决方案。

    在 Visual Studio 解决方案的上下文菜单,选择 添加新建项,然后选择 测试设置

  2. 编辑测试设置文件

  3. 选择测试设置使用:

    • 选择单元测试的测试设置和编码的 UI 测试:
      测试 菜单中,选择 测试设置选择测试设置文件

      选择单元测试的设置,编码的 UI 测试

      设置有效的测试设置文件单元和编码的 UI

    • 选择 web 性能测试的设置,并且负载测试:
      打开名为 .testsettings 文件的上下文菜单在您希望使用和来选择 活动负载和 Web 测试设置的解决方案。

      选择 web 性能测试的设置,并且负载测试

      设置有效的测试设置负载和 Web 性能

  • 不用应当知道?
    注释

    • 系统必备 添加测试设置为解决方案,而不更改项目。

    • 系统必备具有选定的测试设置单独的命令 web 性能测试,并且对于其他测试类型。 Web 性能测试始终需要测试设置文件。 单元测试和编码的 UI 测试不需要测试设置文件。

    • “警告”图标警告 建议不要将测试设置为 Visual Studio 2012 单元测试项目,除非专门需提供的设置。 如果将测试设置,旧式测试框架使用运行测试,并且,则会丢失新结构的性能和调整功能优点。

      如果使用的测试设置文件后来决定不希望它,可以通过选择 测试设置移除它在 测试 菜单。

      此建议不适用于 Web 性能,负载测试,始终有一组文件。

    • 系统必备测试选择的设置并控制 诊断数据适配器。 有一个不同的类型信息的多个适配器,并配置中测试运行的环境。

    • 系统必备测试设置来选择 测试 控制器。 如果要运行在多个设备的应用程序,您使用测试控制器。

    • 系统必备具有一些 兼容性问题为测试在 Visual Studio 2010 和 Visual Studio 之间的设置 2012 中。 在 Visual Studio 的版本,当您创建了一个测试项目,在 Visual Studio 2012前面的测试设置,以包含在您的解决方案。 有单个类型测试包含各种测试类型的项目。 但是,在 Visual Studio 2012测试设置,以未包括在解决方案中,当或新单元测试项目时或新的编码 UI 测试项目添加到中。 这是增强的结果在单元测试框架提高扩展性、容纳功能和性能。 不过,您可以打开包含测试项目的现有 Visual Studio 2010 解决方案,并 .testsettings 文件和它将继续运行。 此外,还可以添加名为 .testsettings 文件添加到您的 Visual Studio 2012 解决方案,如果在分布式在多个设备的应用程序需要收集特定测试数据或运行测试。

    • 系统必备在添加 Web 性能测试时,负载测试项目的解决方案,默认值 Local.testsettings 文件中创建。 自动添加到 解决方案项 文件夹下的解决方案。 这在本地运行测试时,未选择诊断数据适配器。 可以添加或编辑 .testsettings 文件指定诊断数据适配器和测试控制器。

    • 提示 有关其他指南,请参见 测试使用 Visual Studio 进行附带的 2012 版–第 6 章:一个测试工具中

编辑测试设置

可以配置设置使用在 测试设置 对话框的以下页面的测试的各种值:

  • 常规

  • 角色

  • 数据和诊断

  • 部署

  • 安装脚本和清理脚本

  • 宿主

  • 测试超时

  • 单元测试

  • Web 测试

测试设置:角色

在角色页,则在本地计算机上配置测试运行或远程运行:

选择本地执行

  • 本地执行 为默认值。 在生成服务器上意味着测试,并且应用程序运行在 Visual Studio 计算机,或,则在签入完代码后。 执行 数据和诊断。

  • 与远程集合的本地执行 是测试的 web app 或客户服务器端系统典型配置中。 测试代码在本地计算机上运行,但是,您还可以收集与在其他计算机上安装应用程序的元素的测试数据。

  • 使用远程执行 您不希望运行应用程序的任何部分局部的位置。 这是应用程序需要特定平台的典型配置中,如特定浏览器或数据库。 可以收集测试数据并配置在每台计算机上的测试环境。

Ee256991.collapse_all(zh-cn,VS.110).gif配置测试控制器和角色远程数据收集和执行

远程执行意味着除了您的本地计算机外,在一个或多个计算机上安装应用程序。 测试设置中指定数据收集这些计算机上的测试环境配置。 每个计算机必须中的每一个具有测试控制器链接的测试代理。 测试控制器读取测试设置并使用代理配置的每台计算机测试环境和诊断数据适配器。 手动可以 安装测试控制器和代理 也可以 使用 Microsoft 测试管理器创建实验室环境

对于远程测试,计算机由角色确定的命名,例如“SQL Server”,“Web 服务器,”和“桌面客户端名称”。名称允许您指定的每台计算机配置。 在安装到正在测试的应用程序,使用角色名称选择应用程序的每个元素的右边的计算机。

测试设置角色

  1. 从的 控制器 下拉列表中,选择将用于运行测试的测试代理的测试控制器或收集数据。

  2. 若要添加希望用于运行测试和收集数据的角色,选择 添加。 例如,您可能会产生角色名称 (例如“桌面客户端”或“Web 服务器”。

  3. 选择要运行的测试,然后选择 设置为运行测试的角色的角色。 通常,这是应用程序客户端组件安装的角色。

    备注

    您定义的其他角色不运行测试代码,但是,只有使用基于对 数据和诊断 页的角色指定的数据和诊断适配器收集数据。

  4. 若要选择可用于角色的测试代理,您必须创建该角色的属性来为这些特性添加到测试代理。 如果在多台计算机,要运行同时测试必须分配给多个从角色的特性设置运行测试的测试代理。 若要创建属性,请选择角色然后在工具栏上选择 添加 中特性列表。

  5. 此时将显示**“代理选择规则”**对话框。

  6. 键入在 特性名 的名称以及在 特性值的值,然后选择 确定。 根据需要添加多个特性。

  7. 例如,可以添加一个名为“RAM > 16GB”、值为“True”或“False”的特性,以对内存大于 16GB 的测试代理计算机进行筛选。 但是,您必须手动选择在您的属性值测试代理。 属性值不会自动设置基于设备的规范。

  8. 使用 管理测试控制器 对话框,若要将特性应用于一个或多个测试代理,将属性设置为测试代理。

测试设置:数据和诊断

测试设置 对话框中,选择 数据和诊断 页。 此时,具体取决于如何配置了 角色 页的选项卡,请使用以下选项之一:

  • 收集有关您的本地计算机中收集数据和诊断数据

    若要包含您在本地计算机上收集的数据和诊断,根据您的测试需求选择 诊断数据适配器。 若要配置要包括的诊断数据适配器,请选择特定诊断数据适配器然后在数据和诊断适配器的列表中 配置 选项。

  • 远程计算机上收集数据和诊断数据使用角色

    在**“数据和诊断”**页中,通过选择角色将用于收集数据的诊断数据适配器来定义角色所起的作用。 因此,如果对角色启用了一个或多个数据和诊断适配器,则测试控制器将基于为角色定义的特性选择一个可用的测试代理计算机来为指定的数据和诊断适配器收集数据。 若要选择要为每个角色收集的数据和诊断数据适配器,请选择角色。 根据测试要求为每个角色选择诊断数据适配器。 若要配置为每个角色选择的每个诊断数据适配器,请选择在数据和诊断适配器的列表中 配置 选项。

    角色和诊断数据适配器示例:

    例如,可以创建一个名为“桌面客户端”、“使用 SQL”特性设置为“True”的客户端角色,以及一个名为“SQL Server”、特性设置为“RAM > 16GB”的服务器角色。 如果指定“桌面客户端”将运行通过选中 角色 页的 设置为运行测试的角色 测试,则测试控制器将选择计算机与包含”运行的属性设置为“的测试代理使用 SQL”特性设置为“true "测试。 测试控制器还将选择 SQL 具有由属性“仅收集数据的 RAM > 16GB 为角色和诊断适配器定义的包含数据的测试代理的服务器计算机。 “桌面客户端”测试代理还可以同时计算机收集数据。它运行在中,但是必须为该角色选择了数据和诊断适配器。

备注

表显示可以使用 Visual Studio 测试仅的适配器。有关用于 Microsoft 测试管理器的诊断数据适配器的更多信息,请参见 使用测试设置来设置计算机和收集诊断信息

用于自动测试的诊断数据适配器

诊断数据适配器

关联主题

用于 IntelliTrace 和测试影响的 ASP.NET 客户端代理:此代理允许您为 IntelliTrace 和测试影响诊断数据适配器收集有关从客户端到 Web 服务器的 http 调用的信息。

收集此信息不需要任何配置。

如何:收集 IntelliTrace 数据以帮助调试难题

如何:收集数据来检查在代码更改后应该运行的测试

IntelliTrace:可以为 IntelliTrace 配置诊断数据适配器,使其收集特定诊断跟踪信息,从而帮助隔离难以重现的 Bug。 此适配器会创建扩展名为 .iTrace 的 IntelliTrace 文件,用于包含此信息。 测试失败时,可以创建 Bug。 随测试结果一起保存的 IntelliTrace 文件会自动链接到此 Bug。 IntelliTrace 文件中收集的数据可减少重现和诊断代码中的错误所需的时间,从而提高调试效率。 通过此 IntelliTrace 文件,可以在另一台计算机上模拟该本地会话,这降低了 Bug 不可重现的概率。

有关更多信息,请参见使用 IntelliTrace 查看代码的历史记录来更快地调试代码

如何:收集 IntelliTrace 数据以帮助调试难题

ASP.NET 探查器:可以创建包含 ASP.NET 分析的测试设置,该分析收集 ASP.NET Web 应用程序的性能数据。

说明说明
此诊断数据适配器函数只能用于负载测试需要 Visual Studio 旗舰版的网站。

如何:在 Visual Studio 中使用测试设置为负载测试配置 ASP.NET 探查器

如何:为分布式负载测试创建测试设置

代码复盖率 (Visual Studio 2010): 可以创建包含代码复盖率信息用于调查的测试设置多少复盖的代码范围。

说明说明
此诊断数据适配器仅适用于 Visual Studio 测试设置。它不用于测试在 Microsoft 测试管理器的设置。
说明说明
这是只 Visual Studio 2010 的兼容性。

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

使用测试设置的代码覆盖率已弃用

事件日志:可以将测试设置配置为包含事件日志收集,该事件日志将包含在测试结果中。

如何:使用测试设置配置事件日志收集

网络仿真:可以使用测试设置指定您希望在测试中放置人工网络负载。 网络仿真将仿真特定网络连接(如拨号连接)的速度,从而影响计算机的往来通信。

说明说明
此诊断数据适配器仅适用于 Visual Studio 测试设置。它不用于测试在 Microsoft 测试管理器的设置。
说明说明
网络仿真不能用于提高网络连接速度。

如何:在 Visual Studio 中使用测试设置配置网络仿真

系统信息:可以设置测试设置来包含有关在其上运行测试的计算机的系统信息。 通过使用测试设置可在测试结果中指定系统信息。

收集此信息不需要任何配置。

测试影响:可以收集在运行某个测试用例时应用程序代码使用了哪些方法的相关信息。 此信息可与开发人员进行的应用程序代码更改结合使用,以确定这些开发更改影响了哪些测试。

如何:收集数据来检查在代码更改后应该运行的测试

视频录制器:运行自动测试时可以创建桌面会话的视频录制。 此视频录制对查看编码的 UI 测试的用户操作可能有用。 该视频录制可帮助其他团队成员确定难以重现的应用程序问题。

如何:使用测试设置在测试期间包括屏幕和语音录制

测试设置:部署

  1. 测试设置 对话框中,选择 部署 页。

  2. 若要在每次运行测试时都为部署创建一个单独的目录,请选择**“启用部署”**。

    备注

    如果选择此配置,则在运行测试时可以继续生成应用程序。

  3. 若要将文件添加到用于运行测试的目录中测试所需的测试,选择 添加文件 然后选择要添加的文件。

  4. 若要将内容添加到用于运行测试的目录中测试所需的测试,选择 添加目录 然后选择要添加的目录。

    备注

    有关如何使用相关属性和 DeploymentItem 特性为各个测试部署文件和目录的更多信息,请参见如何:为测试部署文件

测试设置:安装脚本和清理脚本

  1. 若要运行脚本,在测试前后,选择。测试设置 对话框的 安装脚本和清理脚本 页。

  2. 键入脚本文件的位置。安装脚本 的或选择省略号 () 找到安装脚本。

  3. 键入脚本文件的位置。清理脚本 的或选择省略号 () 找到清理脚本。

测试设置:主机

  1. 使用其他主机,若要运行测试,请在 测试设置 对话框的 主机 页。

  2. 若要在与 ASP.NET 站点相同的进程中运行单元测试,请在**“主机类型”中选择“ASP.NET”**。

  3. 使用运行的测试在 32 位或 64 位进程,可选择要将测试运行,在 32 位或 64 位进程。

    为了最大限度地提高灵活性,您应使用**“任何 CPU”配置来编译测试项目。 然后可以在两个 32 中运行位和 64 位代理。 使用“64 位”**配置编译测试项目没有什么特别的用处。

测试设置:测试超时

  1. (可选) 若要限制时间每个的测试运行,和各个测试,请在 测试设置 对话框的 测试超时 . 页。

  2. 若要在超过一定时间限制时中止测试运行,请选择**“在总执行时间超过以下值时中止测试运行”**,然后键入此时限的值。

  3. 若要在超过一定时限时使单个测试未通过,请选择**“在单个测试的执行用时超过以下值时,将其标记为未通过”**,然后键入此时限的值。

测试设置:单元测试

(可选),则必须指定单元测试需要加载的程序集位置,请选择 单元测试

  1. 对于 要加载的程序集的根文件夹,选择 浏览 查找文件夹并填充文本框。

    指定的根文件夹可以包含环境变量并表示要用作的 AppDomain 的 ApplicationBase 测试运行目录。 此目录中的所有程序集都可由您的单元测试来加载。 在生产环境中,最好将此目录设置为安装测试程序集代码的目录。 在开发环境中,最好将此目录设置您的测试代码编译程序集的目录。 这样就可以确保对产品二进制文件的任何引用都可以在测试的发现和执行期间加载并解决,而无需在测试时复制产品二进制文件。

    如果值未在此处设置,测试 AppDomain 的 ApplicationBase 运行设置为包含测试的目录。

  2. 选中或清除**“对测试目录中的程序集使用加载上下文”**复选框。

    默认情况下,大多数程序集都会加载到正确的“加载上下文”。通常,应保留 为程序集使用加载上下文在测试内容 选择了。 但是,那么,当您可能需要禁用此,有一些情况:

    如果测试目录中有大量程序集,在**“要加载的程序集的根文件夹”**下指定了一个位置,并且您的测试不依赖于在加载上下文中加载,则在不使用加载上下文来加载这些测试程序集的情况下,您可能会看到性能提高。

    如果您的测试依赖于在加载上下文以外的上下文中进行加载(不是典型情况)。

    有关更多信息,请参见适用于程序集加载的最佳做法

  3. 运行测试时要使用的文件夹下,选择 添加文件夹

    此时将显示**“浏览文件夹”**对话框。

  4. 找到要使用的文件夹并选择 确定

    **“运行测试时要使用的文件夹”**设置可能是最常用的设置。 在测试的发现和执行阶段,可以指定从中解析程序集的文件夹的多个路径。 在此部分中指定的每个路径都可以包含环境变量。 除了这里指定的每个路径外,还有两个与其关联的选项:

    第一个选项 选择 使用加载上下文 复选框来指定目录应使用加载上下文,在解析此目录中的程序集时 (如果测试不需要加载上下文即可测试正确运行可能通过清除此复选框来提高性能改进)。

    指定在解析此目录中的程序集时,第二个选项 选择 包括子文件夹 复选框来指定使用任何子文件夹中。

  5. 发现测试时要使用的其他文件夹下,选择 添加文件夹

    此时将显示**“浏览文件夹”**对话框。

  6. 找到要使用的文件夹并选择 确定

    发现测试时要使用的其他文件夹 选项,则可为或远程执行测试在 Team Build 下执行时或运行自动从 Microsoft 测试管理器。 这里提供的路径将用于程序集解析,但仅在测试发现期间使用。 这些路径可以包含环境变量。 当对测试进行安排以通过生成放置来远程执行并且并不是所有的测试程序集依赖项都在同一目录中时,可以使用这些路径来确保 MSTest 或测试控制器可以找到足够多的依赖程序集来发现测试,并将它们安排到远程计算机以便执行。

    用于运行计划从 Microsoft 测试管理器,还可使用一般引用生成放置位置的一个附加标记 %BuildDrop%。 这样就无需在每次测试新的生成时都创建或更新测试设置。 遗憾的是此标记并不直接受 Team Build 支持。 但是,因此,如果生成放置位置在名为从生成定义的 BuildDrop 的环境变量设置,将会有同样的效果。

    有关更多信息,请参见使用单元测试验证代码

测试设置:Web 测试

(可选) 配置控件的属性 Web 性能测试 如何在测试设置中运行,选择 Web 测试

  1. 选择**“固定的运行计数”“每个数据源行运行一次”**。

  2. 使用**“浏览器类型”下拉列表选择进行 Web 性能测试要使用的 Web 浏览器。 例如,“Internet Explorer 9.0”**。

    备注

    Web 性能测试要求最终的 Visual Studio。

  3. (启用的可选) 选择的 模拟思考时间 模拟了人为暂停。

  4. (可选) 选择的 使用请求 URL 的内容作为默认值路径由于 cookie

    如果 使用请求 URL 的内容作为默认值路径由于 cookie 被禁用,则您的 web 测试将遵循此行为:

    如果请求,如 www.abc.com/myapp/abc.aspx,将其响应的 cookie,且未指定路径,则测试将使用整个请求 URL 作为路径为该 cookie。 这意味着 cookie 将只发送与 URL www.abc.com/myapp/abc.aspx 的后续请求。

    使用请求 URL 的内容作为默认值路径由于 cookie 有效,则您的 web 测试将遵循此行为:

    如果请求,如 www.abc.com/myapp/abc.aspx,将其响应的 cookie,且未指定路径,则测试将使用该请求 URL 的内容作为路径为该 cookie。 这意味着 cookie 将发送与子路径 www.abc.com/myapp 的所有请求 (例如,www.abc.com/myapp/xyz.aspx)。

    RFC 一致的指定此行为与版本 1 的 cookie 2109。 有关更多信息,请参见 等待注释:2109

请参见

任务

如何:通过 Microsoft Visual Studio 添加测试设置文件

如何:通过 Microsoft Visual Studio 编辑测试设置文件

如何:通过 Microsoft Visual Studio 选择活动测试设置

如何:为分布式负载测试创建测试设置

演练:在负载测试中使用测试控制器和测试代理

概念

使用测试设置来设置计算机和收集诊断信息

将测试控制器和测试代理用于负载测试

设置测试计算机以运行测试或收集数据

使用 Visual Studio 2010 的测试设置的兼容性

其他资源

测试使用 Visual Studio 进行附带的 2012 版–第 6 章:一个测试工具中

在 Microsoft 测试管理器中指定测试设置

指定 Visual Studio 测试的测试设置

指定 Visual Studio 测试的测试设置