

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 自动合并各个构建报告
<a name="parallel-test-auto-merge"></a>

在 fanout 批量生成中， AWS CodeBuild 支持将单个生成报告自动合并到合并的批次级报告中。此功能提供一个批量中所有构建的测试结果和代码覆盖的全面视图。

## 工作原理
<a name="parallel-test-auto-merge.how"></a>

执行`fanout`批量生成时，每个单独的生成都会生成[测试报告](test-reporting.md)。 CodeBuild 然后自动将来自不同版本的相同报告合并到一个统一的报告中，该报告将附加到批量生成中。这些合并报告可通过 [ BatchGetBuildBatches](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BatchGetBuildBatches.html#CodeBuild-BatchGetBuildBatches-response-buildBatches)API 的`reportArns`字段轻松访问，也可以在控制台的 “**报告**” 选项卡中查看。这种合并功能也扩展到自动发现的报告。

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

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

批量构建报告遵循与[各个构建报告](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Report.html)相同的结构。**报告**选项卡中的以下关键字段特定于批量构建报告：

**批量构建报告状态**  
批量构建报告的状态遵循特定的规则，具体取决于报告类型：  
+ 测试报告：
  + 成功：当所有单独的构建报告都成功时，状态设置为成功。
  + 失败：如果任何单个构建报告失败，则状态将设置为失败。
  + 未完成：如果有任何单个构建报告缺失或状态为未完成，则状态将标记为未完成。
+ 代码覆盖率报告：
  + 完成：当所有单独的构建报告都完成时，状态设置为完成。
  + 失败：如果任何单个构建报告失败，则状态将设置为失败。
  + 未完成：如果有任何单个构建报告缺失或状态为未完成，则状态将标记为未完成。

**测试摘要**  
合并测试报告整合了所有单个构建报告中的以下字段：  
+ 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](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeTestCases.html)API 和控制台中的批量生成报告进行访问。

**代码覆盖**  
合并后的代码覆盖率报告提供了所有单独版本中每个文件的合并行和分支覆盖率信息，可通过 [DescribeCodeCoverages](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeCodeCoverages.html)API 和控制台中的批量生成报告进行访问。注意：对于分布在不同分片上的多个测试文件所涵盖的文件，合并报告使用以下选择标准：  

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

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