生成、部署和测试工作流指南

本主题说明生成、部署和测试工作流的推荐方法。 可以根据需要确定要使用的最佳方法。 然而,在项目周期的不同阶段,您的需要可能会更改。 在项目的开始,您可能只是每晚生成应用程序。 随着项目的进行,您可能要通过将单元测试添加到此工作流来测试生成的质量。 这些测试通常称为生成验证测试或冒烟测试。 测试团队准备好运行测试时,您可能要实现工作流的自动化以包含应用程序部署。 然后,您可以对部署的应用程序最新版本运行手动或自动测试。 或者,您可能要以完整工作流的形式生成、部署和运行自动测试,以在部署时验证生成的质量。

您可以使用 mstest.exe 从测试项目的程序集中作为这些工作流的一部分来运行自动测试。 或者,您可以使用 tcm.exe 从测试计划的测试套件中运行自动测试。 若要从测试计划中运行自动测试,必须执行以下任务:

  1. 创建测试计划和测试套件:使用测试计划定义测试工作量

  2. 将自动测试与测试套件中的测试用例关联:如何:将自动测试与测试用例关联

  3. 创建物理或虚拟环境:环境

使用以下各节中的信息为工作流中所需的任务设置软件组件:

  • 要求

    以下各节说明使用生成、部署和测试作为工作流的一部分的要求:要求。

  • 生成

    如果只需要生成应用程序,则可以使用默认生成模板完成。 有关如何对生成进行设置的更多信息,请参见生成应用程序

  • 生成并测试

    如果您要作为生成过程的一部分来运行自动测试,可以使用默认生成模板选择要从测试项目中运行的测试。 如果通过了测试,则认为已成功生成。 生成并运行自动测试

    重要说明重要事项

    这会使用 mstest.exe 作为生成过程的一部分来运行测试。 有关 mstest.exe 的更多信息,请参见 MSTest.exe 命令行选项

  • 生成和部署

    如果要使用应用程序的最新生成从测试计划运行手动测试,可以生成然后将应用程序部署到物理或虚拟环境。 生成、部署并从测试计划运行手动测试

  • 生成、部署并测试

    如果要在部署后检查应用程序的质量,可以使用物理或虚拟环境生成和部署应用程序,并从测试计划运行自动测试。 使用环境生成、部署并从测试计划运行自动测试

    重要说明重要事项

    这会使用 tcm.exe 作为生成过程的一部分来运行测试。 有关 tcm.exe 的更多信息,请参见 tcm:从命令行为测试计划导入和运行自动测试

要求

根据要在工作流中执行的任务,您可以在物理或虚拟计算机上安装每个任务所需的组件。 下图显示一个示例,该示例说明如何根据本节中的信息选择安装软件:

生成、部署和测试要求

所有任务的软件要求

  • Team Foundation Server

生成的软件要求

  • 生成控制器

    每个团队项目集合至少需要 1 个生成控制器

  • 生成代理

    每个生成控制器至少需要 1 个生成代理

部署的软件要求

  • 1 个生成控制器(可以使用用于生成应用程序的同一生成控制器)

  • 对于虚拟环境:虚拟环境中的每台计算机 1 个生成代理和 1 个实验室代理

使用环境测试的软件要求

  • 测试控制器

    每个团队项目集合至少需要 1 个测试控制器

  • 测试代理

    环境中的每台计算机都需要 1 个测试代理

  • 对于虚拟环境:虚拟环境中的每台计算机 1 个实验室代理(除了测试代理外)

有关这些组件如何协同工作以运行测试的更多信息,请参见设置测试计算机以运行测试或收集数据

有关如何安装这些组件的更多信息,请参见安装和配置 Visual Studio 代理以及测试和生成控制器

以下各节可以帮助您决定在哪些计算机上安装软件组件。 然后,可以确定执行安装所需的计算机数。

生成控制器和生成代理的计算机要求

若要确定所需的计算机,必须基于以下信息确定拓扑:

  • 每个团队项目集合必须具有一个生成控制器。

  • 每台计算机上只能具有一个生成控制器。

  • 在典型安装中,生成代理执行的任务可能会对处理器需求很大。 这可能会显著降低 Team Foundation Server 的性能。 在这种情况下,需要将生成代理与 Team Foundation Server 安装在不同的计算机上。

  • 可以将生成控制器与 Team Foundation Server 安装在同一计算机上。 如果生成控制器管理很多活动生成代理,这可能会占用更多系统内存,您可以决定将生成控制器安装在单独的计算机上。

例如,如果您具有三个团队项目集合,每一个都具有必须生成的应用程序,则需要三台计算机来安装三个生成控制器;如果将一个生成控制器安装在 Team Foundation Server 上,则需要另外两台计算机。

重要说明重要事项

有关用于设置生成控制器和生成代理的拓扑的更多信息,请参见生成系统拓扑示例

测试控制器和测试代理的计算机要求

为了减少软件组件之间的通信问题,我们建议测试控制器计算机和 Team Foundation Server 计算机位于同一域中。 有关如何在不同的域或工作组中安装组件的更多信息,请参见工作组和多个域的要求

若要确定需要用于测试控制器的计算机,必须基于以下信息决定所需的拓扑:

  • 如果使用物理或虚拟环境进行测试,则需要测试控制器。

  • 可以将单个测试控制器用于多个物理或虚拟环境。

  • 必须向包含环境的团队项目集合注册测试控制器。

  • 每个测试控制器只能向一个团队项目集合注册。

  • 所需的每个测试控制器必须安装在单独的计算机上。

例如,如果您具有三个要为其创建环境的团队项目集合,则必须至少具有三个测试控制器。 这至少需要三台计算机。

提示

如果在一个团队项目集合中支持很多环境并且需要多个测试控制器,可以向同一 Team Foundation Server 注册多个测试控制器。

减少生成控制器和测试控制器所需的计算机

如果需要多个生成控制器和测试控制器,可以通过将测试控制器与生成控制器安装在同一计算机上来降低计算机要求。 例如,如果您具有三个团队项目集合 A、B 和 C,每一个都需要一个生成控制器和一个测试控制器,则可以将生成控制器与测试控制器安装在同一计算机上。 使用此方法,只需要三台计算机来安装控制器,而不是六台计算机。

生成并运行自动测试

若要将生成并测试用作工作流任务,必须在创建的默认生成定义中提供以下信息:

生成代理使用 mstest.exe 从位于放置文件夹中的测试程序集运行测试,如下图所示。 可以使用应用程序解决方案中的默认测试设置 (local.testsettings) 通过生成代理在本地运行测试。

提示

若要在生成过程中使用 local.testsettings 文件,必须将此文件签入到 Team Foundation Server。

仅使用一个生成代理运行测试时,不能使用诊断数据适配器收集信息。 如果要在此方案中使用诊断数据适配器,必须在生成代理所在的同一计算机上安装测试代理。 或者,可以使用物理或虚拟环境,如以下章节所述:生成、部署并从测试计划运行自动测试。

在没有测试代理的情况下进行生成和测试

有关如何为工作流生成并运行测试的详细步骤,请参见如何:在生成应用程序之后配置和运行计划的测试

警告

我们建议不要将测试控制器和测试设置一起使用来作为生成定义的一部分远程运行测试。 如果要使用测试控制器和测试代理,应该使用物理或虚拟环境,如以下章节所述:生成、部署并从测试计划运行自动测试。

如果您刚刚了解如何使用 Visual Studio、Team Foundation Server 和 Team Foundation Build 定义工作流,可以将所有组件安装在一台计算机上。 但是,此系统具有很多用户以及运行多个生成时,我们建议不要这样做。

提示

若要运行编码的 UI 测试,我们建议首先将应用程序部署到物理或虚拟环境。 使用此方法,如果必须运行手动步骤来调查测试失败,可以使用此同一环境。 若要在不部署应用程序的情况下运行编码的 UI 测试,必须将使用的生成代理配置为能够与桌面交互。 此外,必须在生成计算机上安装测试代理,并将放置文件夹中的最新生成用于测试。 有关如何对生成代理进行设置的更多信息,请参见设置代理以运行编码的 UI 测试

生成和部署

若要为工作流生成并部署应用程序,必须使用物理或虚拟环境。

虚拟环境

若要使用虚拟环境(使用 Visual Studio 实验室管理工具版)生成并部署,请使用实验室默认模板。 此实验室模板允许您执行以下操作:

  • 选择要使用的虚拟环境

  • 为该环境选择要用作部署起点的快照

  • 选择要用于部署应用程序的生成定义或生成

  • 添加要运行以部署放置文件夹中的应用程序的脚本

  • 部署后作为生成并部署工作流的一部分拍摄虚拟环境的快照

您可以使用虚拟环境通过部署到此环境的生成运行手动测试,也可以运行自动测试。 有关如何生成并将应用程序部署到虚拟环境的更多信息,请参见如何:在虚拟环境中部署应用程序。 有关如何使用虚拟环境运行手动测试的更多信息,请参见如何:使用虚拟环境运行手动测试和创建可重现的 Bug

物理环境

如果要将应用程序部署到物理环境,可以为生成定义自定义模板。 有关如何自定义生成过程模板的更多信息,请参见创建和使用自定义生成过程模板

可以使用此环境从测试计划运行手动测试或自动测试。 有关如何运行这些测试的更多信息,请参见使用测试运行程序运行手动测试从测试计划运行自动测试的要点指南

使用环境生成、部署并从测试计划运行自动测试

若要在生成、部署并测试过程中运行作为测试计划一部分的自动测试,必须使用物理环境或虚拟环境。 生成定义使用 tcm.exe 运行测试。 作为工作流的一部分运行这些测试时,会为这些测试创建测试运行,并且可以使用 Microsoft 测试管理器查看和分析测试结果。 有关如何分析测试运行的更多信息,请参见如何:使用 Microsoft 测试管理器分析测试运行。 它还允许您查看有关生成质量的历史数据。 您可以确定生成质量何时存在一贯问题,以及应用程序的哪些区域具有失败的测试。

创建用于测试的物理环境时可以使用物理或虚拟机,也可以使用 Visual Studio 实验室管理工具版创建虚拟环境。 通过虚拟环境,您可以使用环境中的每台计算机基于现有快照在已知状态下部署应用程序。 此外,部署应用程序后可以拍摄环境的快照,以便您可以返回此已知状态以测试 Bug 或运行手动测试。 虚拟环境提供了更大的灵活性。 有关如何创建这些环境的更多信息,请参见创建用于测试的物理环境创建虚拟环境

虚拟环境

若要将应用程序部署到虚拟环境,可以使用随 Team Foundation Build 提供的默认实验室模板定义。 若要使用虚拟环境,必须具有 Visual Studio 实验室管理工具版。 此实验室模板允许您执行以下操作:

  • 选择要使用的虚拟环境

  • 为该环境选择要用作部署起点的快照

  • 选择要用于部署应用程序的生成定义或生成

  • 添加要运行以部署放置文件夹中的应用程序的脚本

  • 为测试运行选择测试套件、测试配置和测试设置

  • 部署后作为生成并部署工作流的一部分拍摄虚拟环境的快照

有关如何为默认实验室模板设置生成定义以使用虚拟环境生成、部署并测试的更多信息,请参见如何:在生成并部署应用程序之后配置和运行计划的测试

在虚拟环境中进行生成、部署和测试

物理环境

若要将应用程序部署到物理环境并运行自动测试,可以为生成定义自定义模板。 有关如何自定义生成过程模板的更多信息,请参见创建和使用自定义生成过程模板

在物理环境中进行生成、部署和测试

请参见

概念

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

其他资源

自定义 Lab Management 工作流