自动合并各个构建报告 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

自动合并各个构建报告

在扇出批量构建中,Amazon CodeBuild 支持将各个构建报告自动合并到整合的批量级别报告中。此功能提供一个批量中所有构建的测试结果和代码覆盖的全面视图。

工作方式

执行 fanout 批量构建时,每个单独的构建都会生成测试报告。然后,CodeBuild 自动将来自不同构建的相同报告整合为一个统一的报告,而该报告将附加到批量构建。这些整合的报告可通过 BatchGetBuildBatches API 的 reportArns 字段轻松访问,也可以在控制台的报告选项卡中查看。这种合并功能也扩展到自动发现的报告。

整合报告是在报告组下创建的,而报告组要么在 buildspec 中指定,要么由 CodeBuild 自动发现。您可以直接在这些报告组下分析合并报告的趋势,从而为跨同一批量构建项目的历史构建的整体构建性能和质量指标提供宝贵的见解。

对于批量中的每个单独构建,CodeBuild 会自动创建单独的报告组。这些报告组遵循特定的命名约定,将批量构建报告组名称与 BuildFanoutShard<shard_number> 后缀组合在一起,其中 shard_number 表示在其中创建报告组的分片编号。这种整理方式可让您跟踪和分析整合构建级别和各个构建级别的趋势,从而可以灵活地监控和评估其构建过程。

批量构建报告遵循与各个构建报告相同的结构。报告选项卡中的以下关键字段特定于批量构建报告:

批量构建报告状态

批量构建报告的状态遵循特定的规则,具体取决于报告类型:

  • 测试报告:

    • 成功:当所有单独的构建报告都成功时,状态设置为成功。

    • 失败:如果任何单个构建报告失败,则状态将设置为失败。

    • 未完成:如果有任何单个构建报告缺失或状态为未完成,则状态将标记为未完成。

  • 代码覆盖率报告:

    • 完成:当所有单独的构建报告都完成时,状态设置为完成。

    • 失败:如果任何单个构建报告失败,则状态将设置为失败。

    • 未完成:如果有任何单个构建报告缺失或状态为未完成,则状态将标记为未完成。

测试摘要

合并测试报告整合了所有单个构建报告中的以下字段:

  • duration-in-nano-seconds:所有单个构建报告中的最大测试持续时间(以纳秒为单位)。

  • total:所有测试用例的总数,即每个构建中的测试总数之和。

  • status-counts:提供测试状态(例如“通过”、“失败”或“跳过”)的整合视图,这些状态是通过汇总所有单个构建中每种状态类型的计数计算得出的。

代码覆盖摘要

合并的代码覆盖报告使用以下计算方法合并了所有单个构建中的字段:

  • branches-covered:各个报告中所有覆盖的分支的总和。

  • branches-missed:各个报告中所有错过的分支的总和。

  • branch-coverage-percentage:(Total covered branches / Total branches) * 100

  • lines-covered:各个报告中所有覆盖的行的总和。

  • lines-missed:各个报告中所有错过的行的总和。

  • lines-coverage-percentage:(Total covered lines / Total lines) * 100

执行 ID

批量构建 ARN。

测试用例

合并的报告包含来自各个构建的所有测试用例的整合列表,可通过 DescribeTestCases API 和控制台中的批量构建报告进行访问。

代码覆盖

合并的代码覆盖报告提供了所有各个构建中每个文件的整合行和分支覆盖信息,可通过 DescribeCodeCoverages API 和控制台中的批量构建报告进行访问。注意:对于分布在不同分片上的多个测试文件所涵盖的文件,合并报告使用以下选择标准:

  1. 主要选择基于分片中最高的行覆盖率。

  2. 如果多个分片上的行覆盖率相等,则会选择分支覆盖率最高的分片。