

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

# AWS CodeBuild 与 Codecov 一起使用
<a name="codecov-integration"></a>

Codecov 是一种用于测量代码的测试覆盖率的工具。Codecov 可标识您的代码中哪些方法和语句未经测试。可通过结果确定在何处编写测试以提高代码质量。Codecov 可用于以下三个源存储库 CodeBuild： GitHub、E GitHub nterprise Server 和 Bitbucket。如果您的构建项目使用 GitHub 企业服务器，则必须使用 Codecov Enterprise。

 当你运行与 Codecov 集成的 CodeBuild 项目的版本时，用于分析存储库中代码的 Codecov 报告会上传到 Codecov。构建日志包含指向报告的链接。此示例介绍如何将 Python 和 Java 构建项目与 Codecov 集成。有关 Codecov 支持语言的列表，请参阅 Codecov 网站上的 [Codecov 支持语言](https://docs.codecov.io/docs/supported-languages)。

## 将 Codecov 集成到构建项目中
<a name="integrate-codecov"></a>

通过以下过程将 Codecov 集成到构建项目中。

**将 Codecov 与构建项目集成**

1. 前往 [https://codecov.io/signup](https://codecov.io/signup) 注册 GitHub 或 Bitbucket 源代码存储库。如果您使用 GitHub企业版，请参阅 Codecov 网站上的 [Codecov Enter](https://codecov.io/enterprise) prise。

1.  在 Codecov 中，添加要覆盖的存储库。

1.  在显示令牌信息时，选择**复制**。  
![\[此时会显示令牌信息。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/codecov-token.png)

1.  将复制的令牌作为名为 `CODECOV_TOKEN` 的环境变量添加到构建项目中。有关更多信息，请参阅 [更改构建项目的设置（控制台）](change-project.md#change-project-console)。

1.  在存储库中创建一个名为 `my_script.sh` 的文本文件。在文件中输入以下内容：

   ```
   #/bin/bash
   bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
   ```

1.  根据构建项目的使用情况，选择 **Python** 或 **Java** 选项卡，然后按照以下步骤操作。

------
#### [ Java ]

   1.  将以下 JaCoCo 插件添加到您的存储库`pom.xml`中。

      ```
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      ```

   1.  在构建规范文件中输入以下命令。有关更多信息，请参阅 [buildspec 语法](build-spec-ref.md#build-spec-ref-syntax)。

      ```
      build:
        - mvn test -f pom.xml -fn
      postbuild:
        - echo 'Connect to CodeCov'
        - bash my_script.sh
      ```

------
#### [ Python ]

    在构建规范文件中输入以下命令。有关更多信息，请参阅 [buildspec 语法](build-spec-ref.md#build-spec-ref-syntax)。

   ```
   build:
     - pip install coverage
     - coverage run -m unittest discover
   postbuild:
     - echo 'Connect to CodeCov'
     - bash my_script.sh
   ```

------

1.  运行构建项目的构建。指向为项目生成的 Codecov 报告的链接将显示在构建日志中。使用链接查看 Codecov 报告。有关更多信息，请参阅[手动运行 AWS CodeBuild 构建](run-build.md)和[使用记录 AWS CodeBuild API 调用 AWS CloudTrail](cloudtrail.md)：构建日志中的 Codecov 信息与以下内容类似：

   ```
   [Container] 2020/03/09 16:31:04 Running command bash my_script.sh
   
     _____          _
    / ____|        | |
   | |     ___   __| | ___  ___ _____   __
   | |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
   | |___| (_) | (_| |  __/ (_| (_) \ V /
    \_____\___/ \__,_|\___|\___\___/ \_/
                                 Bash-20200303-bc4d7e6
   
   ·[0;90m==>·[0m AWS CodeBuild detected.
   ... The full list of Codecov log entries has been omitted for brevity ...
       ·
       ·[0;32m->·[0m View reports at ·[0;36mhttps://codecov.io/github/user/test_py/commit/commit-id·[0m
   
   [Container] 2020/03/09 16:31:07 Phase complete: POST_BUILD State: SUCCEEDED
   ```

    报告与以下内容类似：  
![\[示例报告。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/codecov-report.png)