创建代码覆盖率报告 - AWS CodeBuild

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

创建代码覆盖率报告

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

行覆盖率

行覆盖率衡量您的测试涵盖了多少语句。语句是一条指令,不包括注释或条件。

line coverage = (total lines covered)/(total number of lines)

分支覆盖率

分支覆盖率衡量您的测试覆盖了控制结构(例如 ifcase 语句)中所有可能的分支中的多少个分支。

branch coverage = (total branches covered)/(total number of branches)

支持以下代码覆盖率报告文件格式:

  • JaCoCo XML

  • SimpleCov JSON¹

  • 三叶草 XML

  • Cobertura XML

  • LCOV INFO

¹ CodeBuild 接受 simplecov 生成的JSON代码覆盖率报告,而不是 simplecov-json。

创建代码覆盖率报告

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

创建测试报告
  1. 创建构建项目。有关信息,请参阅在中创建构建项目 AWS CodeBuild

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

    1. 添加一个reports:分区并指定报告组的名称。 CodeBuild 使用您的项目名称和以 project-name-格式指定的名称为您创建报告组report-group-name-in-buildspec。如果您已经有要使用的报告组,请指定该报告组ARN。如果您使用名称代替ARN,则 CodeBuild 会创建一个新的报告组。有关更多信息,请参阅 Reports syntax in the buildspec file

    2. 在报告组下,指定包含代码覆盖率结果的文件的位置。如果您使用多个报告组,请为每个报告组指定结果文件位置。每次运行构建项目时都会创建一个新的代码覆盖率报告。有关更多信息,请参阅 指定测试文件

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

      reports: jacoco-report: files: - 'test-results/jacoco-coverage-report.xml' file-format: 'JACOCOXML'
    3. buildpost_build 序列的 commands 部分中,指定用来运行代码覆盖率分析的命令。有关更多信息,请参阅 指定测试命令

  3. 运行构建项目中的构建。有关更多信息,请参阅 手动运行 AWS CodeBuild 构建

  4. 构建完成后,从项目页面上的构建历史记录中选择新的构建运行。选择报告来查看代码覆盖率报告。有关更多信息,请参阅 查看构建的测试报告