Codecov は、コードのテストカバレッジを測定するツールです。Codecov は、コード内のどのメソッドとステートメントがテストされていないかを識別します。その結果に基づいて、コードの品質を向上させるためのテストの記述先を判断します。Codecov は、 CodeBuild でサポートされているソースリポジトリのうち、3 つ (GitHub、GitHub Enterprise Server、Bitbucket) でサポートされています。ビルドプロジェクトで GitHub Enterprise Server を使用する場合は、Codecov Enterprise を使用する必要があります。
Codecov を統合した CodeBuild プロジェクトのビルドを実行すると、リポジトリ内のコードを分析する Codecov レポートが Codecov にアップロードされます。ビルドログには、レポートへのリンクが含まれています。次のサンプルでは、Python および Java ビルドプロジェクトを Codecov と統合する方法を示します。Codecov でサポートされている言語のリストについては、Codecov Supported Languages
Codecov とビルドプロジェクトの統合
Codecov をビルドプロジェクトに統合するには、次の手順に従います。
Codecov とビルドプロジェクトを統合するには
-
https://codecov.io/signup
に移動し、GitHub または Bitbucket ソースリポジトリにサインアップします。GitHub Enterprise を使用する場合は、Codecov ウェブサイトの「Codecov Enterprise 」を参照してください。 -
Codecov に、カバレッジ対象のリポジトリを追加します。
-
トークン情報が表示されたら、[Copy] を選択します。
-
コピーしたトークンを、
CODECOV_TOKEN
という名前の環境変数としてビルドプロジェクトに追加します。詳細については、「ビルドプロジェクトの設定の変更 (コンソール)」を参照してください。 -
リポジトリ内に
my_script.sh
という名前のテキストファイルを作成します。このファイルに次の内容を入力します。#/bin/bash bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
-
ビルドプロジェクトの用途に応じて [Python] タブまたは [Java] タブを選択し、次の手順に従います。
-
次の 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>
-
buildspec ファイルに次のコマンドを入力します。詳細については、「buildspec の構文」を参照してください。
build: - mvn test -f pom.xml -fn postbuild: - echo 'Connect to CodeCov' - bash my_script.sh
-
ビルドプロジェクトのビルドを実行します。プロジェクト用に生成された 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レポートは次のように表示されます。