搭配 Codecov 使用 AWS CodeBuild - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Codecov 使用 AWS CodeBuild

Codecov 是一種用於測量程式碼測試涵蓋範圍的工具。Codecov 可識別程式碼中的哪些方法和陳述式尚未經過測試。使用結果來決定要將測試寫入哪個位置,提升程式碼的品質。Codecov 適用於 Codecov 支援的三個來源儲存庫:GitHub、GitHub Enterprise Server 和 Bitbucket。如果您的建置專案使用 GitHub Enterprise Server,則必須使用 Codecov Enterprise。

當您執行與 Codecov 整合的 Codecov 建置時,Codecov 會報告儲存庫中的分析程式碼已上傳至 Codecov。建置日誌包含報告的連結。此範例示範如何將 Python 和 Java 建置專案與 Codecov 加以整合。如需 Codecov 支援語言清單,請參閱 Codecov 網站上的 Codecov 支援語言

將 Codecov 整合至建置專案

整合 Codecov 與建置專案

  1. 前往 https://codecov.io/signup 並註冊 GitHub 或 Bitbucket 來源儲存庫。如果您使用的是 GitHub Enterprise,則請參閱 Codecov 網站上的 Codecov Enterprise

  2. 在 Codecov 中,新增儲存庫以用於您需要的涵蓋範圍。

  3. 當畫面上顯示字符資訊時,請選擇 Copy (複製)。

  4. 將複製的字符以名為 CODECOV_TOKEN 環境變數的形式新增至建置專案。如需詳細資訊,請參閱 變更建置專案的設定 (主控台)

  5. 在儲存庫中建立名為 my_script.sh 的文字檔案。在檔案中輸入下列內容:

    #/bin/bash bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
  6. 針對適合您建置專案使用的情況,選擇 PythonJava 標籤,然後按照下列步驟進行。

    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>
    2. 在 Buildspec 檔案中輸入下列命令。如需詳細資訊,請參閱 Buildspec 語法

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

    在 Buildspec 檔案中輸入下列命令。如需詳細資訊,請參閱 Buildspec 語法

    build: - pip install coverage - coverage run -m unittest discover postbuild: - echo 'Connect to CodeCov' - bash my_script.sh
  7. 執行建置專案的建置。針對專案產生的 Codecov 報告連結會顯示在建置日誌中。使用連結檢視 Codecov 報告。如需詳細資訊,請參閱在 AWS CodeBuild 中執行建置使用 AWS CloudTrail 記錄 AWS CodeBuild API 呼叫。建置日誌中的 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

    報告看起來類似下列內容: