AWS CodeBuildテストレポートが本番環境用に一般公開となりました。
ビルド中に実行されるテストに関する詳細を含むレポートをCodeBuildで作成できるようになります。
- 単体テスト
- 構成テスト
- 機能テスト
などのテストを作成できます。ファイル形式はJUnit XMLまたはCucumber JSONです。
メリット
テストレポートを利用することで以下のことが可能になります。
失敗したテストの検証 CodeBuild で実行したテストの詳細や、過去の傾向、集約したメトリクスを表示できます。
ビルド実行中の問題のトラブルシューティング 複数のビルドからのテストレポートがある場合、傾向とテストおよび失敗率を表示し、ビルドの最適化に役立てることができます。
利用方法
単体テストのレポートを保存して表示するには、buildspec.ymlファイルにreportsという新しいシーケンス構成を追加します。 CodeBuildは、この名前で新しいレポートグループを作成するか、既にレポートグループが存在する場合はそれを使用します。
以下のサンプルbuildspec.ymlファイルは、Surefireを使用してJUnitテストからテストレポートを生成し、
version: 0.2 env: variables: JAVA_HOME: "/usr/lib/jvm/java-8-openjdk-amd64" phases: install: runtime-versions: java: corretto8 build: commands: - echo Build started on `date` - mvn surefire-report:report #単体テストを実行しレポートを生成 reports: #New SurefireReports: #「SurefireReports」というレポートグループの作成 files: #すべてのファイルを保存 - '**/*' base-directory: 'target/surefire-reports' #レポートの場所
ユニットテストは、buildspec.ymlファイルのbuildまたはpost_buildシーケンスで指定できます。
CodeBuildがテストレポートを作成するには、追加のAWS Identity and Access Management(IAM)権限が必要です。アクセス許可はCodeBuildで使用される事前定義されたAWS管理ポリシーにすでに含まれています。既存のCodeBuildプロジェクトに権限を追加するにはポリシーを変更する必要があります。 以下はアクセス許可を追加するIAMポリシーです。
{ "Statement": [ { "Resource": "arn:aws:codebuild:your-region:your-aws-account-id:report-group/my-project-*", "Effect": "Allow", "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases" ] } ] }
テストが実行開始されると、レポートと共にレポートグループのトレンドとメトリックが表示されます。 レポートには合格率、平均レポート期間、それぞれのテストにかかった時間も表示されます。
集計とは別に、各レポートによって個別にキャプチャされたメトリックを確認できます。 レポートごとに、個々の単体テストの内訳、テストのステータス、期間、テストメッセージを確認できます。
CodeBuildによって作成されたテストレポートは30日間保存されます。期限切れのテストレポートは表示できません。 30日以上保存する場合は、レポートをAmazon S3バケットに保存します。