查看测试结果

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

可以将自动测试配置为作为各种 语言的生成或版本的一部分运行。 测试报告提供了一种有效且一致的方法来查看使用不同的测试框架执行的测试结果,以衡量管道质量、查看可跟踪性、排查故障和驱动故障所有权。 此外,它还提供了以下各节中探讨的许多高级报告功能。

还可以使用 Analytics Service 对测试结果执行更深入的分析。 有关将此方法用于生成和部署管道的示例,请参阅 “分析测试结果”。

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

注意

测试报告在 TFS 2015 及更高版本中可用,但本主题中所述的新体验目前仅在 Azure Pipelines 中可用。

注意

在 Microsoft Team Foundation Server (TFS) 2018 和更低版本中,生成和发布管道被称为“定义”,运行被称为“生成”,服务连接被称为“服务终结点”,阶段被称为“环境”,而作业被称为“阶段” 。

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

“测试”选项卡中的 Surface 测试结果

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

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

  • 测试执行任务。 内置测试执行任务(如 Visual Studio Test )自动将测试结果发布到管道,或者 其他任务(如 Ant、 MavenGulpGruntXcode )提供此功能的选项。

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

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

“测试”选项卡之外的 Surface 测试信息

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

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

  • 测试分析 提供了对一段时间内度量的测试结果的丰富见解。 它通过提供顶级失败测试等数据来帮助识别测试中存在问题的区域。

在生成中查看测试结果

生成摘要提供生成中执行的关键步骤的时间线视图。 如果测试已执行并报告为生成一部分,则时间线视图中会显示测试里程碑。 测试里程碑提供测试结果摘要,作为 传递百分比 的度量值,以及 故障中止 指标(如果存在)。

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

在发布中查看测试结果

在管道视图中,可以看到所有阶段和关联的测试。 该视图提供测试结果摘要,作为 传递百分比 的度量值,以及 故障中止 指标(如果存在)。 这些指示器与在生成时间线视图中相同,在生成和发布方面提供一致的体验。

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

“测试”选项卡

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

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

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

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

“查看测试”选项卡

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

“查看详细信息”选项卡

提示

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

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

筛选大型的测试结果

随着时间的推移,测试累算,并且对于大型应用程序,可以轻松增长到数万个测试。 对于具有大量测试的这些应用程序,很难浏览结果以识别测试失败、关联根本原因或获取问题的所有权。 使用筛选器可以轻松导航到感兴趣的测试结果。 可以筛选 测试名称结果 (失败、通过等) 、 测试文件 (文件,其中包含测试) 和 所有者 (测试文件) 。 所有筛选器条件本质上都是累积条件。

筛选大型测试结果集

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

使用 bug 测试债务管理

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

沉浸式故障排除体验

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

整页面板视图

排查测试失败的数据

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

测试债务管理

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

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

查看历史趋势

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

测试(如集成和功能测试)可以长时间运行。 因此,请务必随时查看测试执行的当前或准实时状态。 即使对于快速运行测试的情况,也有必要尽早知道相关测试结果的状态 () :尤其是在发生故障时。 正在进行的视图无需等待测试执行完成。 执行进行时,结果几乎实时提供,有助于更快地执行操作。 可以调试失败、提交 bug 或中止管道。

正在进行发布视图

注意

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

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

正在进行摘要视图

查看汇总测试结果

在测试执行期间,测试可能会生成多个实例或有助于总体结果的测试。 例如,重新运行的测试、由其他测试的有序组合构成的测试 (有序测试) 或基于输入参数 (数据驱动测试) 具有不同实例的测试。

由于这些测试相关,它们必须与从单个实例或测试派生的总体结果一起报告。 这些测试结果报告为“ 测试 ”选项卡中的汇总测试结果:

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

    重新运行失败的测试

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

    数据驱动测试

注意

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

查看已中止的测试

测试执行可能会因多种原因而中止,例如测试代码错误、测试源中的错误或环境问题。 无论中止的原因如何,必须能够诊断行为并确定根本原因。 可以在“ 测试 ”选项卡中的已完成运行旁边查看中止的测试和测试运行。

查看已停止的测试。

注意

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

自动推断的测试结果

Azure DevOps 可以自动推断管道中为一些受支持的测试框架运行的测试的输出。 这些自动推断的测试报告不需要管道的特定配置,并且是开始使用测试报告的零努力方法。

自动推断的测试报告示例

查看 自动推断测试结果的运行程序列表

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

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

注意

一些跑步者,如莫查有多个内置的控制台记者,如 点矩阵进度条。 如果已为测试运行程序配置非默认控制台输出,或者使用的是自定义记者,Azure DevOps 将无法推断测试结果。 它只能推断 默认 记者的结果。

帮助和支持