

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

# 创建代码覆盖率报告
<a name="code-coverage-report"></a>

CodeBuild 允许您为测试生成代码覆盖率报告。提供以下代码覆盖率报告：

行覆盖率  
行覆盖率衡量您的测试涵盖了多少语句。语句是一条指令，不包括注释或条件。  
`line coverage = (total lines covered)/(total number of lines)`

分支覆盖率  
分支覆盖率衡量您的测试覆盖了控制结构（例如 `if` 或 `case` 语句）中所有可能的分支中的多少个分支。  
`branch coverage = (total branches covered)/(total number of branches)`

支持以下代码覆盖率报告文件格式：
+ JaCoCo XML
+ SimpleCov JSON¹
+ Clover XML
+ XML 覆盖范围
+ LCOV INFO

[¹ CodeBuild 接受 simplecov 生成的 JSON 代码覆盖率报告，而不是 s [implecov](https://github.com/simplecov-ruby/simplecov)-json。](https://github.com/vicentllongo/simplecov-json)

## 创建代码覆盖率报告
<a name="code-coverage-report-create"></a>

要创建代码覆盖率报告，您需要运行一个在其 buildspec 文件中配置了至少一个代码覆盖率报告组的生成项目。 CodeBuild 将解释代码覆盖率结果并为运行提供代码覆盖率报告。对于使用相同构建规范文件的每个后续构建，系统将生成一个新的测试报告。

**创建测试报告**

1. 创建构建项目。有关信息，请参阅[在 中创建构建项目AWS CodeBuild](create-project.md)。

1. 使用测试报告信息配置项目的构建规范文件：

   1. 添加一个`reports:`分区并指定报告组的名称。 CodeBuild 使用您的项目名称和以 `project-name`-格式指定的名称为您创建报告组`report-group-name-in-buildspec`。如果已存在要使用的报告组，请指定其 ARN。如果您使用名称而不是 ARN，则 CodeBuild 会创建一个新的报告组。有关更多信息，请参阅 [Reports syntax in the buildspec file](build-spec-ref.md#reports-buildspec-file)。

   1. 在报告组下，指定包含代码覆盖率结果的文件的位置。如果您使用多个报告组，请为每个报告组指定结果文件位置。每次运行构建项目时都会创建一个新的代码覆盖率报告。有关更多信息，请参阅 [指定测试文件](report-group-test-cases.md)。

      这是一个为位于 test- JaCoCo 中的 XML 结果文件生成代码覆盖率报告的示例`results/jacoco-coverage-report.xml`。

      ```
      reports:
        jacoco-report:
          files:
            - 'test-results/jacoco-coverage-report.xml'
          file-format: 'JACOCOXML'
      ```

   1. 在 `build` 或 `post_build` 序列的 `commands` 部分中，指定用来运行代码覆盖率分析的命令。有关更多信息，请参阅 [指定测试命令](report-group-test-case-commands.md)。

1. 运行构建项目中的构建。有关更多信息，请参阅 [手动运行 AWS CodeBuild 构建](run-build.md)。

1. 构建完成后，从项目页面上的**构建历史记录**中选择新的构建运行。选择**报告**来查看代码覆盖率报告。有关更多信息，请参阅 [查看构建的测试报告](test-view-project-reports.md)。