查看测试结果

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

可以将自动化测试配置为作为各种语言版本的一部分运行。 测试报告提供了一种有效且一致的方法来查看使用不同的测试框架执行的测试结果,以衡量管道质量、查看可追溯性、排查故障和推动失败责任制。 此外,测试报告还提供了许多高级报告功能,将在以下各节中深入介绍。

还可以使用分析服务对测试结果执行更深入的分析。 有关在生成和部署管道中使用此方法的示例,请参阅分析测试结果

阅读术语表以了解测试报表术语。

可以在生成或发布摘要的“测试”选项卡中查看已发布的测试结果。

“测试”选项卡中显示的测试结果

可以使用以下选项之一在“测试”选项卡中显示测试结果:

  • 自动推断测试结果。 默认情况下,管道可以自动推断一些常用测试运行器的测试输出。 具体方法是分析生成操作期间生成的错误日志,然后检查测试失败的签名。 目前,Azure DevOps 支持以下语言和测试运行程序来自动推断测试结果:

  • 测试执行任务。 这些是内置测试执行任务(例如,Visual Studio Test),这些任务自动将测试结果发布到管道,或者诸如 AntMavenGulpGruntXcode 等其他任务,这些任务在任务中作为选项提供此功能。

  • 发布测试结果任务。 这些任务可在使用所选的运行器执行测试时,将测试结果发布到 Azure Pipelines 或 TFS,并且结果以任何受支持的测试结果格式提供。

  • API。 使用 测试管理 API 直接发布的测试结果。

在“测试”选项卡以外显示测试信息

“测试”选项卡提供测试执行的详细摘要。 这有助于跟踪管道的质量,以及排查故障。 Azure DevOps 还提供了显示测试信息的其他方法:

  • 仪表板提供团队进度的可见性。 添加一个或多个显示测试相关信息的小组件:

  • 通过测试分析,用户能以多种角度洞察一段时间内测量的测试结果。 测试分析可以提供顶级失败测试等数据,有助于帮助识别测试中的问题区域。

查看生成中的测试结果

生成摘要提供生成中执行的关键步骤的时间线视图。 如果在生成过程中执行并报告了测试,则测试里程碑将显示在时间线视图中。 测试里程碑提供了测试结果的摘要(作为通过百分比的度量),以及失败和中止的指标(如果存在)。

在生成时间线视图中查看测试

查看发布中的测试结果

在管道视图中,可以看到所有阶段和关联的测试。 此视图提供了测试结果的摘要(作为通过百分比的度量),以及失败和中止的指标(如果存在)。 这些指标与生成时间线视图中的指标相同,在生成和发布之间提供一致的体验。

在发布画布视图中查看测试

“测试”选项卡

生成和发布摘要都提供了测试执行的详细信息。 选择“测试摘要”,在“测试”选项卡中查看详细信息。此页面包含以下部分

  • 摘要:提供测试执行的关键定量指标,例如测试总数、失败测试数、通过百分比等。 还提供与上一次执行相比的变化差异指示器。

  • 结果:列出作为当前生成或发布的一部分执行和报告的所有测试。 默认视图仅显示失败和中止的测试,以便专注于需要注意的测试。 但是,可以使用提供的筛选器选择其他结果。

  • 详细信息:测试的列表,可以进行排序、分组、搜索和筛选以查找所需测试结果。

“查看测试”选项卡

选择任何测试运行或结果以查看详细信息窗格,其中显示故障排除所需的其他信息,例如错误消息、堆栈跟踪、附件、工作项、历史趋势等。

查看详细信息选项卡

提示

如果使用 Visual Studio 测试任务来运行测试,则从测试中记录的诊断输出(使用任何 Console.WriteLine、Trace.WriteLine 或 TestContext.WriteLine 方法)将显示为失败测试的附件。

“测试”选项卡的以下功能有助于提高工作效率和故障排除体验。

筛选大型的测试结果

日积月累下,测试将逐渐增多,而对于大型应用程序,测试量可以轻松增长到数以万计。 对于具有非常多测试的这些应用程序,可能很难通过浏览结果来识别测试失败项、关联根本原因或追究问题的归属。 使用筛选器可以轻松快速导航到你感兴趣的测试结果。 可以根据测试名称、结果(失败、通过等)、测试文件(保存测试的文件)和所有者(测试文件)进行筛选。 所有筛选条件本质上都是累积的。

筛选大型的测试结果集

此外,通过多个分组选项(如测试运行、测试文件、优先级、要求等),可以完全根据需要组织结果视图。

使用 bug 测试债务管理

若要管理失败或长时间运行测试的测试债务,可以创建 bug 或向现有 bug 添加数据,并在工作项选项卡中查看所有关联的工作项。

沉浸式故障排除体验

错误消息和堆栈跟踪本质上很长,需要足够空间才能在故障排除过程中查看详细信息。 为了提供沉浸式故障排除体验,可以将“详细信息”视图扩展为全页视图,同时仍然能够在上下文中执行所需的操作,例如为所选测试结果创建错误或关联需求。

全页面板视图

对测试失败的数据进行故障排除

对于测试失败项,可以通过错误消息和堆栈跟踪进行故障排除。 还可以在“附件”选项卡中查看与测试失败关联的所有附件。

测试债务管理

可以创建或添加到现有 bug,以管理失败或长时间运行的测试的测试债务。 “工作项”选项卡详细说明了与测试关联的所有 bug 和需求,以帮助你分析需求影响以及了解状态以及处理 bug 的人员。

测试执行历史记录可以在测试可靠性或性能方面提供有意义的见解。 排查故障时,了解过去测试的执行方式非常有用。 “测试”选项卡提供上下文中的测试历史记录以及测试结果。 测试历史记录信息以渐进方式公开,从当前生成管道开始,到其他分支,或从当前阶段到其他阶段,分别用于生成和发布。

查看历史趋势

查看正在进行的测试的执行

某些测试(如集成测试和功能测试)可以长时间运行。 因此,在任何给定时间查看测试执行的当前或准实时状态非常重要。 即使在测试快速运行的情况下,尽早了解相关测试结果的状态也是非常有用的,尤其是在遇到失败的情况下。 “正在进行”视图无需等待测试执行完成。 随着执行的进展,结果几乎是实时的,这有助于你更快地执行操作。 可以调试失败、对 bug 归档或中止管道。

“正在进行”发布视图

注意

此功能目前可用于生成和发布(使用多代理作业中的 Visual Studio 测试 任务)。 在将来的版本中,此功能可用于单一代理作业。

下图显示了发布中正在进行测试摘要,报告给定时间点的测试计数和测试失败总数。 测试失败可用于故障排除、创建 bug 或采取任何其他适当的操作。

进度摘要视图

查看汇总测试结果

在测试执行期间,测试可能会生成多个实例或测试,它们都会参与形成整体结果。 举几个例子:重新运行的测试、由其他测试的有序组合构成的测试(即有序测试),或是根据输入参数而具有不同实例的测试(即数据驱动的测试)。

由于这些测试是相关的,因此必须报告它们以及派生自单个实例或测试的总体结果。 这些测试结果在“测试”选项卡中以汇总的测试结果的形式报告:

  • 重新运行失败的测试:最新版本的 Visual Studio 测试任务中提供了重新运行失败测试的功能。 在重新运行期间,可能会对失败的测试进行多次尝试,并且由于测试行为的不确定性,每个失败的根本原因可能不同。 测试报告为重新运行的所有尝试提供组合视图,还以汇总单元的形式提供了总体测试结果。 此外,测试管理 API 现在支持发布和查询总结测试结果的功能。

    重新运行失败的测试

  • 数据驱动的测试:与重新运行失败的测试类似,数据驱动测试的所有迭代都以汇总视图在该测试下报告。 摘要视图也可用于顺序测试(Visual Studio 中的 .orderedtest)。

    数据驱动的测试

注意

测试摘要部分中的指标(如测试总数、已通过、失败或其他)是使用汇总测试结果的根级别计算的。

查看已中止的测试

测试执行可能会由于多种原因而中止,包括错误测试代码、进行测试的源代码和环境问题。 无论是何种中止原因,能够诊断行为并确定根本原因都十分重要。 可以在“测试”选项卡中查看已中止的测试和测试运行以及已完成的运行。

查看已停止的测试。

注意

该功能目前适用于生成和发布,在多代理作业中使用 Visual Studio 测试任务,或使用测试管理 API 发布测试结果。 在将来的版本中,此功能可用于单一代理作业。

自动推断测试结果

Azure DevOps 可以针对一些受支持的测试框架自动推断管道中运行的测试的输出。 这些自动推断的测试报告不需要对管道进行特定配置,并且可以作为一种轻松开始使用测试报告的方式。

自动推断测试报告示例

请参阅自动推断测试结果的运行器列表

由于此类推断报表中仅存在有限的测试元数据,因此在特性和功能方面受到限制。 推断的测试报告不支持以下功能:

  • 按测试文件、所有者、优先级和其他字段对测试结果进行分组
  • 搜索和筛选测试结果
  • 检查通过的测试的详细信息
  • 预览在 Web UI 本身的测试期间生成的任何附件
  • 将测试失败与新的 bug 相关联,或查看此失败的关联工作项列表
  • 请参阅用于管道测试的生成时生成分析

注意

某些运行器(如 Mocha)具有多个内置控制台报告器,如 dot-matrixprogress-bar。 如果你为测试运行器配置了非默认控制台输出,或者你正在使用自定义报告器,则 Azure DevOps 将无法推断测试结果, 只能从默认报告器推断结果。

帮助和支持