

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# レポートグループ
<a name="test-report-group"></a>

*レポートグループ*にはテストレポートが含まれており、共有設定を指定します。buildspec ファイルを使用して、実行するテストケースと、ビルド時に実行するコマンドを指定します。ビルドプロジェクトで設定された各レポートグループに対して、ビルドプロジェクトの実行によってテストレポートが作成されます。レポートグループで設定されたビルドプロジェクトを複数実行すると、そのレポートグループに複数のテストレポートが作成され、そのレポートグループに指定された同じテストケースの結果がそれぞれ作成されます。

 テストケースは、ビルドプロジェクトの buildspec ファイル内のレポートグループに対して指定されています。1 つのビルドプロジェクトで最大 5 つのレポートグループを指定できます。ビルドを実行すると、すべてのテストケースが実行されます。新しいテストレポートは、レポートグループに指定された各テストケースの結果で作成されます。新しいビルドを実行するたびに、テストケースが実行され、新しいテスト結果を使用して新しいテストレポートが作成されます。

 レポートグループは、複数のビルドプロジェクトで使用できます。1つのレポートグループで作成されたすべてのテストレポートは、異なるビルドプロジェクトを使用してテストレポートを作成した場合でも、エクスポートオプションやアクセス権限など、同じ設定を共有します。複数のビルドプロジェクトで 1 つのレポートグループを使用して作成されたテストレポートには、異なるテストケースセット (ビルドプロジェクトごとに 1 セットのテストケース) の実行結果を含めることができます。これは、各プロジェクトの buildspec ファイルで、レポートグループに異なるテストケースファイルを指定できるためです。また、buildspec ファイルを編集して、ビルドプロジェクトのレポートグループのテストケースファイルを変更することもできます。その後のビルド実行では、更新された buildspec のテストケースファイルの結果を含む新しいテストレポートが作成されます。

**Topics**
+ [Create a report group](report-group-create.md)
+ [Report group naming](test-report-group-naming.md)
+ [レポートグループを共有](report-groups-sharing.md)
+ [テストファイルの指定](report-group-test-cases.md)
+ [テストコマンドの指定](report-group-test-case-commands.md)
+ [でレポートグループにタグを付ける AWS CodeBuild](how-to-tag-report-group.md)
+ [レポートグループの更新](report-group-export-settings.md)

# Create a report group
<a name="report-group-create"></a>

 CodeBuild コンソール、 AWS CLI、または buildspec ファイルを使用して、レポートグループを作成できます。IAM ロールには、レポートグループを作成するために必要なアクセス権限が必要です。詳細については、「[テストレポートのアクセス許可](test-permissions.md)」を参照してください。

**Topics**
+ [レポートグループの作成 (buildspec)](#test-report-group-create-buildspec)
+ [Create a report group (console)](#test-report-group-create-console)
+ [レポートグループの作成 (CLI)](#test-report-group-create-cli)
+ [レポートグループの作成 (CloudFormation)](#test-report-group-create-cfn)

## レポートグループの作成 (buildspec)
<a name="test-report-group-create-buildspec"></a>

buildspec を使用して作成されたレポートグループは、生のテスト結果ファイルをエクスポートしません。レポートグループを表示し、エクスポート設定を指定できます。詳細については、「[レポートグループの更新](report-group-export-settings.md)」を参照してください。

**buildspec ファイルを使用してレポートグループを作成するには**

1.  AWS アカウントのレポートグループに関連付けられていないレポートグループ名を選択します。

1.  buildspec ファイルの `reports` セクションをこの名前で設定します。この例では、レポートグループ名は `new-report-group` で、ユーステストケースは JUnit フレームワークを使用して作成されます。

   ```
   reports:
    new-report-group: #surefire junit reports
      files:
        - '**/*'
      base-directory: 'surefire/target/surefire-reports'
   ```

   レポートグループ名は、buildspec で環境変数を使用して指定することもできます。

   ```
   version: 0.2
   env:
     variables:
       REPORT_GROUP_NAME: "new-report-group"
   phases:
     build:
       commands:
         - ...
   ...
   reports:
    $REPORT_GROUP_NAME:
      files:
        - '**/*'
      base-directory: 'surefire/target/surefire-reports'
   ```

    詳細については、「[テストファイルの指定](report-group-test-cases.md)」および「[Reports syntax in the buildspec file](build-spec-ref.md#reports-buildspec-file)」を参照してください。

1. `commands` セクションで、テストを実行するコマンドを指定します。詳細については、「[テストコマンドの指定](report-group-test-case-commands.md)」を参照してください。

1.  ビルドを実行します。ビルドが完了すると、形式 `project-name-report-group-name` を使用する名前で新しいレポートグループが作成されます。詳細については、「[Report group naming](test-report-group-naming.md)」を参照してください。



## Create a report group (console)
<a name="test-report-group-create-console"></a>

次の手順で、 AWS マネジメントコンソールを使用してレポートグループを作成します。

**レポートグループの作成**

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) で AWS CodeBuild コンソールを開きます。

1. ナビゲーションペインで、[**Report groups (レポートグループ)**] を選択します。

1. [**Create report group (レポートグループを作成)**] を選択します。

1. [**Report group name (レポートグループ名)**] に、レポートグループの名前を入力します。

1. (オプション) **タグ**には、サポート AWS サービスで使用するタグの名前と値を入力します。[**Add row**] を使用して、タグを追加します。最大 50 個のタグを追加できます。

1. テストレポート結果の raw データを Amazon S3 バケットにアップロードする場合は、次のようにします。

   1. **[Amazon S3 にエクスポート]** を選択します。

   1. [**S3 bucket name (S3 バケット名)**] に、S3 バケットの名前を入力します。

   1. (オプション)**S3 バケット所有者**で S3 バケットを所有するアカウントの AWS アカウント識別子を入力します。これにより、レポートデータを、ビルドを実行しているアカウント以外のアカウントが所有する Amazon S3 バケットにエクスポートできます。

   1. [**Path prefix (パスプレフィックス)**] に、テスト結果をアップロードする S3 バケットのパスを入力します。

   1. 生のテスト結果データファイルを圧縮するには、[**Compress test result data in a zip file (テスト結果データを圧縮する)**] を選択します。

   1. [**Additional configuration (追加の設定)**] を展開して、暗号化オプションを表示します。次のいずれかを選択します。
      + Amazon S3 AWS マネージドキー の を使用する**デフォルトの AWS マネージドキー**。詳細については、*AWS Key Management Service ユーザーガイド*の「[カスタマー マネージド CMKs](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。これはデフォルトの暗号化オプションです。
      + **カスタムキーを選択して**、ユーザーが作成して設定するカスタマー管理のキーを使用します。**AWS KMS 暗号化キー**の場合は、暗号化キーの ARN を入力します。形式は ` arn:aws:kms:<region-id>: <aws-account-id>:key/<key-id> ` です。詳細については、*AWS Key Management Service ユーザーガイド*の「[KMS キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」を参照してください。
      + 暗号化を無効にするには、**アーティファクト暗号化を無効**にします。テスト結果を共有したり、静的ウェブサイトに公開したりする場合は、このオプションを選択します。(動的ウェブサイトでは、テスト結果を復号化するコードを実行できます)。

      保管時の暗号化の詳細については、「[データの暗号化](security-encryption.md)」を参照してください。
**注記**  
プロジェクトで指定した CodeBuild サービスロールは、S3 バケットにアップロードするアクセス許可に使用されます。

1. [**Create report group (レポートグループを作成)**] を選択します。

## レポートグループの作成 (CLI)
<a name="test-report-group-create-cli"></a>

次の手順で、 AWS CLIを使用してレポートグループを作成します。

**レポートグループの作成**

1. `CreateReportGroup.json` という名前のファイルを作成します。

1. 要件に応じて、以下の JSON コードスニペットのいずれかを `CreateReportGroup.json` にコピーします。
   + 次の JSON を使用して、テストレポートグループが生のテスト結果ファイルを Amazon S3 バケットにエクスポートするように指定します。

     ```
     {
       "name": "<report-name>",
       "type": "TEST",
       "exportConfig": {
         "exportConfigType": "S3",
         "s3Destination": {
           "bucket": "<bucket-name>",
           "bucketOwner": "<bucket-owner>",
           "path": "<path>",
           "packaging": "NONE | ZIP",
           "encryptionDisabled": "false",
           "encryptionKey": "<your-key>"
         },
         "tags": [
           {
             "key": "tag-key",
             "value": "tag-value"
           }
         ]
       }
     }
     ```
     + *<bucket-name>* を Amazon S3 バケット名に、*<path>* をファイルをエクスポートするバケット内のパスに置き換えます。
     + エクスポートされたファイルを `packaging` に圧縮する場合は、`ZIP` を指定します。それ以外の場合は、`NONE` を指定します。
     + `bucketOwner` はオプションで、Amazon S3 バケットがビルドを実行しているアカウント以外のアカウントによって所有されている場合にのみ必要です。
     + エクスポートされたファイルを暗号化するかどうかを指定するために `encryptionDisabled` を使用します。エクスポートしたファイルを暗号化する場合は、カスタマー管理のキーを入力します。詳細については、「[レポートグループの更新](report-group-export-settings.md)」を参照してください。
   + 次の JSON を使用して、テストレポートで生のテストファイルをエクスポートしないように指定します。

     ```
     {
       "name": "<report-name>",
       "type": "TEST",
       "exportConfig": {
         "exportConfigType": "NO_EXPORT"
       }
     }
     ```
**注記**  
プロジェクトで指定した CodeBuild サービスロールは、S3 バケットにアップロードするアクセス許可に使用されます。

1. 次のコマンドを実行します。

   ```
   aws codebuild create-report-group --cli-input-json file://CreateReportGroupInput.json
   ```

## レポートグループの作成 (CloudFormation)
<a name="test-report-group-create-cfn"></a>

 CloudFormation テンプレートを使用してレポートグループを作成するには、次の手順に従います。

 ** CloudFormation テンプレートを使用してレポートグループを作成するには** 

 CloudFormation テンプレートファイルを使用して、レポートグループを作成およびプロビジョニングできます。詳細については、「[CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)」を参照してください。

 次の CloudFormation YAML テンプレートは、生のテスト結果ファイルをエクスポートしないレポートグループを作成します。

```
Resources:
  CodeBuildReportGroup:
    Type: AWS::CodeBuild::ReportGroup
    Properties:
      Name: my-report-group-name
      Type: TEST
      ExportConfig:
        ExportConfigType: NO_EXPORT
```

 次の YAML テンプレートは、raw CloudFormation テスト結果ファイルを Amazon S3 バケットにエクスポートするレポートグループを作成します。

```
Resources:
  CodeBuildReportGroup:
    Type: AWS::CodeBuild::ReportGroup
    Properties:
      Name: my-report-group-name
      Type: TEST
      ExportConfig:
        ExportConfigType: S3
        S3Destination:
          Bucket: amzn-s3-demo-bucket
          Path: path-to-folder-for-exported-files
          Packaging: ZIP
          EncryptionKey: my-KMS-encryption-key
          EncryptionDisabled: false
```

**注記**  
プロジェクトで指定した CodeBuild サービスロールは、S3 バケットにアップロードするアクセス許可に使用されます。

# Report group naming
<a name="test-report-group-naming"></a>

 AWS CLI または AWS CodeBuild コンソールを使用してレポートグループを作成する場合は、レポートグループの名前を指定します。buildspec を使用して新しいレポートグループを作成する場合、`project-name-report-group-name-specified-in-buildspec` 形式を使用して名前が付けられます。そのビルドプロジェクトのビルドを実行することによって作成されたすべてのレポートは、新しい名前を持つ新しいレポートグループに属します。

 CodeBuild が新しいレポートグループを作成しない場合は、ビルドプロジェクトの buildspec ファイルでレポートグループの ARN を指定します。レポートグループの ARN は、複数のビルドプロジェクトで指定できます。各ビルドプロジェクトが実行されると、レポートグループには各ビルドプロジェクトによって作成されたテストレポートが含まれます。

 たとえば、`my-report-group` という名前のレポートグループを 1 つ作成し、その名前を `my-project-1` と `my-project-2` という名前の 2 つの異なるビルドプロジェクトで使用し、両方のプロジェクトのビルドを作成した場合、2 つの新しいレポートグループが作成されます。結果は、次の名前を持つ 3 つのレポートグループになります。
+  `my-report-group`: テストレポートはありません。
+  `my-project-1-my-report-group`: という名前のビルドプロジェクトによって実行されたテストの結果を含むレポートが含まれます。`my-project-1`
+  `my-project-2-my-report-group`: という名前のビルドプロジェクトによって実行されたテストの結果を含むレポートが含まれます。`my-project-2`

 両方のプロジェクトで `my-report-group` という名前のレポートグループの ARN を使用し、各プロジェクトのビルドを実行しても、1 つのレポートグループ (`my-report-group`) は残ります。そのレポートグループには、両方のビルドプロジェクトによって実行されるテストの結果を含むテストレポートが含まれます。

 AWS アカウントのレポートグループに属していないレポートグループ名を選択し、buildspec ファイル内のレポートグループにその名前を使用し、ビルドプロジェクトのビルドを実行すると、新しいレポートグループが作成されます。新しいレポートグループの名前の形式は `project-name-new-group-name` です。例えば、 AWS アカウントに という名前のレポートグループがなく`new-report-group`、 という名前のビルドプロジェクトで指定した場合`test-project`、ビルド実行によって という名前の新しいレポートグループが作成されます`test-project-new-report-group`。

# レポートグループを共有
<a name="report-groups-sharing"></a>

レポートグループ共有を使用すると、複数の AWS アカウントまたはユーザーがレポートグループ、期限切れでないレポート、およびレポートのテスト結果を表示できます。このモデルでは、レポートグループを所有するアカウント (所有者) は、レポートグループを他のアカウント (コンシューマー) と共有します。コンシューマは、レポートグループを編集できません。レポートは、作成されてから 30 日後に期限切れになります。

**Topics**
+ [レポートグループを共有](#report-groups-sharing-share)
+ [関連サービス](#report-groups-sharing-related)
+ [共有されているレポートグループにアクセス](report-groups-sharing-access-prereqs.md)
+ [共有レポートグループを共有解除](report-groups-sharing-unshare.md)
+ [共有レポートグループを識別](report-groups-sharing-identify.md)
+ [共有レポートグループのアクセス許可](report-groups-sharing-perms.md)

## レポートグループを共有
<a name="report-groups-sharing-share"></a>

 レポートグループを共有すると、コンシューマーには、レポートグループとそのレポートに対する読み取り専用アクセス権が付与されます。コンシューマーは を使用して、各レポートのレポートグループ、そのレポート、およびテストケースの結果 AWS CLI を表示できます。コンシューマは次を行うことはできません。
+  CodeBuild コンソールでの共有レポートグループまたはそのレポートの表示。
+  共有レポートグループの編集。
+  プロジェクト内の共有レポートグループの ARN を使用してレポートを実行。共有レポートグループを指定するプロジェクトのビルドが失敗します。

CodeBuild コンソールを使用して、既存のリソース共有にレポートグループを追加できます。新しいリソース共有にレポートグループを追加する場合は、まず[AWS RAM コンソール](https://console.aws.amazon.com/ram) でレポートグループを作成する必要があります。

レポートグループを組織単位または組織全体と共有するには、 AWS Organizationsとの共有を有効にする必要があります。詳細については、*AWS RAM ユーザーガイド*の「[AWS Organizationsで共有を有効化する](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html)」を参照してください。

CodeBuild コンソール、 AWS RAM コンソール、または AWS CLI を使用して、所有しているレポートグループを共有できます。

**前提条件**  
レポートグループを共有するには、 AWS アカウントがそのグループを所有している必要があります。自分と共有されているレポートグループは共有できません。

**所有するレポートグループを共有するには (CodeBuild コンソール)**

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) で AWS CodeBuild コンソールを開きます。

1. ナビゲーションペインで、[**Report groups (レポートグループ)**] を選択します。

1.  共有するプロジェクトを選択し、[**Share (共有)**] を選択します。詳細については、*AWS RAM ユーザーガイド*の「[リソースの共有の作成](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create)」を参照してください。

**所有しているレポートグループを共有するには (AWS RAM コンソール)**  
「**AWS RAM ユーザーガイド」の「[リソース共有の作成](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)」を参照してください。

**所有しているレポートグループを共有するには (AWS RAM コマンド)**  
[create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) コマンドを使用します。

 **所有するレポートグループを共有するには (CodeBuild コマンド)** 

[put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/put-resource-policy.html) コマンドを使用します:

1. `policy.json` という名前のファイルを作成し、その中に次をコピーします。

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[{
        "Effect":"Allow",
        "Principal":{
          "AWS":"111122223333"
        },
        "Action":[
          "codebuild:BatchGetReportGroups",
          "codebuild:BatchGetReports",
          "codebuild:ListReportsForReportGroup",
          "codebuild:DescribeTestCases"],
        "Resource":"arn:aws:iam::*:role/Service*"
      }]
    }
   ```

------

1. レポートグループ ARN とそれを共有する識別子で `policy.json` を更新します。次の例では、ARN を持つレポートグループへの読み取り専用アクセス`arn:aws:codebuild:us-west-2:123456789012:report-group/my-report-group`を Alice および 123456789012 で識別される AWS アカウントのルートユーザーに付与します。

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[{
        "Effect":"Allow",
        "Principal":{
          "AWS": [
             "arn:aws:iam::123456789012:user/Alice",
             "123456789012"
           ]
        },
        "Action":[
          "codebuild:BatchGetReportGroups",
          "codebuild:BatchGetReports",
          "codebuild:ListReportsForReportGroup",
          "codebuild:DescribeTestCases"],
        "Resource":"arn:aws:codebuild:us-west-2:123456789012:report-group/my-report-group"
      }]
    }
   ```

------

1. 以下のコマンドを実行してください。

   ```
   aws codebuild put-resource-policy --resource-arn report-group-arn --policy file://policy.json
   ```

## 関連サービス
<a name="report-groups-sharing-related"></a>

レポートグループ共有は AWS Resource Access Manager 、 AWS (AWS RAM) と統合されます。これは、リソースを任意の AWS アカウントまたは を通じて共有できるようにするサービスです AWS Organizations。では AWS RAM、リソースと共有するコンシューマーを指定する*リソース共有*を作成して、所有しているリソースを共有します。コンシューマーは、個々の AWS アカウント、 の組織単位 AWS Organizations、または の組織全体です AWS Organizations。

詳細については、「*[AWS RAM ユーザーガイド](https://docs.aws.amazon.com/ram/latest/userguide/)*」を参照してください。

# 共有されているレポートグループにアクセス
<a name="report-groups-sharing-access-prereqs"></a>

共有レポートグループにアクセスするには、コンシューマーの IAM ロールに `BatchGetReportGroups` アクセス許可が必要です。次のポリシーを IAM ロールにアタッチすることができます。

```
{
    "Effect": "Allow",
    "Resource": [
        "*"
    ],
    "Action": [
        "codebuild:BatchGetReportGroups"
    ]
}
```

 詳細については、「[でのアイデンティティベースのポリシーの使用 AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md)」を参照してください。

# 共有レポートグループを共有解除
<a name="report-groups-sharing-unshare"></a>

レポートとテストケースの結果が含まれる共有が解除されたレポートグループは、その所有者だけがアクセスできます。レポートグループの共有を解除すると、以前に共有した AWS アカウントまたはユーザーは、レポートグループ、そのレポート、またはレポート内のテストケースの結果にアクセスできなくなります。

所有するレポートグループを共有または共有を解除するには、リソース共有から削除する必要があります。これを行う AWS CLI には、 AWS RAM コンソールまたは を使用できます。

**所有している共有レポートグループの共有を解除するには (AWS RAM コンソール)**  
*AWS RAM ユーザーガイド* の「[リソース共有の更新](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update)」を参照してください。

**所有している共有レポートグループの共有を解除するには (AWS RAM コマンド)**  
[disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) コマンドを使用します。

 **CodeBuild コマンドを所有しているレポートグループの共有を解除するには)** 

[delete-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/delete-resource-policy.html) コマンドを実行し、共有を解除したいレポートグループの ARN を指定する:

```
aws codebuild delete-resource-policy --resource-arn report-group-arn
```

# 共有レポートグループを識別
<a name="report-groups-sharing-identify"></a>

所有者とコンシューマーは、 AWS CLI を使用して共有レポートグループを識別できます。

共有レポートグループとそのレポートを識別して情報を取得するには、次のコマンドを使用します。
+  自分と共有されているレポートグループの ARN を表示するには、`[list-shared-report-groups](https://docs.aws.amazon.com/cli/latest/reference/codebuild/list-shared-report-groups.html)`を実行します。

  ```
  aws codebuild list-shared-report-groups
  ```
+  レポートグループ内のレポートの ARN を表示するには、レポートグループ ARN を使い `[list-reports-for-report-group](https://docs.aws.amazon.com/cli/latest/reference/codebuild/list-reports-for-report-group.html)` を実行します。

  ```
  aws codebuild list-reports-for-report-group --report-group-arn report-group-arn
  ```
+  レポート内のテストケースに関する情報を表示するには、レポート ARN を使い、`[describe-test-cases](https://docs.aws.amazon.com/cli/latest/reference/codebuild/describe-test-cases.html)` を実行します。

  ```
  aws codebuild describe-test-cases --report-arn report-arn
  ```

   出力は次のようになります。

  ```
  {
      "testCases": [
          {
              "status": "FAILED",
              "name": "Test case 1",
              "expired": 1575916770.0,
              "reportArn": "report-arn",
              "prefix": "Cucumber tests for agent",
              "message": "A test message",
              "durationInNanoSeconds": 1540540,
              "testRawDataPath": "path-to-output-report-files"
          },
          {
              "status": "SUCCEEDED",
              "name": "Test case 2",
              "expired": 1575916770.0,
              "reportArn": "report-arn",
              "prefix": "Cucumber tests for agent",
              "message": "A test message",
              "durationInNanoSeconds": 1540540,
              "testRawDataPath": "path-to-output-report-files"
          }
      ]
  }
  ```

# 共有レポートグループのアクセス許可
<a name="report-groups-sharing-perms"></a>

## 所有者のアクセス許可
<a name="report-groups-perms-owner"></a>

レポートグループの所有者は、レポートグループを編集し、プロジェクトで指定してレポートを実行できます。

## コンシューマーのアクセス許可
<a name="report-groups-perms-consumer"></a>

レポートグループのコンシューマーは、レポートグループ、そのレポート、およびレポートのテストケース結果を表示できます。コンシューマーは、レポートグループまたはそのレポートを編集したり、レポートを作成したりすることはできません。

# テストファイルの指定
<a name="report-group-test-cases"></a>

 ビルドプロジェクトの buildspec ファイルの `reports` セクションで、各レポートグループのテスト結果ファイルとその場所を指定します。詳細については、「[Reports syntax in the buildspec file](build-spec-ref.md#reports-buildspec-file)」を参照してください。

 以下は、ビルドプロジェクトの 2 つのレポートグループを指定するサンプル `reports` セクションです。1 つは ARN で指定され、もう 1 つは名前で指定されます。`files` セクションでは、テストケースの結果を含むファイルを指定します。オプション `base-directory` セクションでは、テストケースファイルがあるディレクトリを指定します。オプションの `discard-paths` セクションでは、Amazon S3 バケットにアップロードされたテスト結果ファイルへのパスを破棄するかどうかを指定します。

```
reports:
  arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-1: #surefire junit reports
    files:
      - '**/*'
    base-directory: 'surefire/target/surefire-reports'
    discard-paths: false
    
  sampleReportGroup: #Cucumber reports from json plugin
    files:
      - 'cucumber-json/target/cucumber-json-report.json'
    file-format: CUCUMBERJSON #Type of the report, defaults to JUNITXML
```

# テストコマンドの指定
<a name="report-group-test-case-commands"></a>

 テストケースを実行するコマンドは、buildspec ファイルの `commands` セクションで指定します。これらのコマンドは、buildspec ファイルの `reports` セクションでレポートグループに指定されたテストケースを実行します。次に、テストファイルでテストを実行するコマンドを含むサンプル `commands` セクションを示します。

```
commands:
    - echo Running tests for surefire junit
    - mvn test -f surefire/pom.xml -fn
    - echo
    - echo Running tests for cucumber with json plugin
    - mvn test -Dcucumber.options="--plugin json:target/cucumber-json-report.json" -f cucumber-json/pom.xml -fn
```

詳細については、「[buildspec の構文](build-spec-ref.md#build-spec-ref-syntax)」を参照してください。

# でレポートグループにタグを付ける AWS CodeBuild
<a name="how-to-tag-report-group"></a>

*タグ*は、 AWS リソース AWS に割り当てるカスタム属性ラベルです。各 AWS タグには 2 つの部分があります。
+ タグキー** (`CostCenter`、`Environment`、`Project`、`Secret` など)。タグキーでは、大文字と小文字が区別されます。
+ タグ値**と呼ばれるオプションのフィールド (`111122223333`、`Production`、チーム名など)。タグ値を省略すると、空の文字列を使用した場合と同じになります。タグキーと同様に、タグ値では大文字と小文字が区別されます。

これらは共にキーと値のペアと呼ばれます。レポートグループに付けることができるタグの最大数、およびタグのキーと値の制限については、「[タグ](limits.md#tag-limits)」を参照してください。

タグは、 AWS リソースの識別と整理に役立ちます。多くの AWS サービスはタグ付けをサポートしているため、異なるサービスのリソースに同じタグを割り当てて、リソースが関連していることを示すことができます。たとえば、Amazon S3 バケットに割り当てたものと同じタグをCodeBuild レポートグループに割り当てることができます。タグの使用の詳細については、「[タグ付けのベストプラクティス](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)」ホワイトペーパーを参照してください。

CodeBuild では、主なリソースはレポートグループとプロジェクトです。CodeBuild コンソール、 AWS CLI、CodeBuild APIs、または AWS SDKs を使用して、レポートグループのタグを追加、管理、削除できます。タグを使用して、レポートグループを識別、組織付け、追跡するだけでなく、IAM ポリシーでタグを使用して、レポートグループを表示および操作できるユーザーをコントロールすることもできます。タグベースのアクセスポリシーの例については、「[タグを使用して AWS CodeBuild リソースへのアクセスを制御する](auth-and-access-control-using-tags.md)」を参照してください。

**Topics**
+ [レポートグループにタグを追加](how-to-tag-report-group-add.md)
+ [レポートグループのタグを表示する](how-to-tag-report-group-list.md)
+ [レポートグループのタグを編集する](how-to-tag-report-group-update.md)
+ [レポートグループからタグを削除](how-to-tag-report-group-delete.md)

# レポートグループにタグを追加
<a name="how-to-tag-report-group-add"></a>

レポートグループにタグを追加すると、 AWS リソースを識別して整理し、リソースへのアクセスを管理するのに役立ちます。まず、レポートグループに 1 つ以上のタグ (キーと値のペア) を追加します。レポートグループに付けることができるタグの数には制限があります。キーフィールドおよび値フィールドに使用できる文字には制限があります。詳細については、「[タグ](limits.md#tag-limits)」を参照してください。タグを追加した後、IAM ポリシーを作成して、それらのタグに基づいてレポートグループへのアクセスを管理できます。CodeBuild コンソールまたは を使用して AWS CLI 、レポートグループにタグを追加できます。

**重要**  
レポートグループにタグを追加すると、そのレポートグループへのアクセスに影響を与える可能性があります。レポートグループにタグを追加する前に、タグを使用してレポートグループなどのリソースへのアクセスをコントロールする可能性のある IAM ポリシーを必ず確認してください。タグベースのアクセスポリシーの例については、「[タグを使用して AWS CodeBuild リソースへのアクセスを制御する](auth-and-access-control-using-tags.md)」を参照してください。

レポートグループの作成時にタグを追加する方法の詳細については、「[Create a report group (console)](report-group-create.md#test-report-group-create-console)」を参照してください。

**Topics**
+ [レポートグループにタグを追加する (コンソール)](#how-to-tag-report-group-add-console)
+ [レポートグループにタグを追加する (AWS CLI)](#how-to-tag-report-group-add-cli)

## レポートグループにタグを追加する (コンソール)
<a name="how-to-tag-report-group-add-console"></a>

CodeBuild コンソールを使用して、CodeBuild レポートグループに 1 つ以上のタグを追加できます。

1. CodeBuild コンソール ([https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)) を開きます。

1. [**Report groups (レポートグループ)**] で、タグを追加するレポートグループの名前を選択します。

1. ナビゲーションペインで **[設定]** を選択します。

1. レポートグループにいずれのタグも追加されていない場合は、[**Add tag (タグの追加)**] を選択します。[**Edit (編集)**] を選択してから、[**Add tag (タグの追加)**] を選択することもできます。

1. [**Key**] に、タグの名前を入力します。**[値]** では、任意でタグに値を追加できます。

1. (オプション) 別のタグを追加するには、[**Add tag**] を再度選択します。

1. タグの追加を完了したら、[**Submit**] を選択します。

## レポートグループにタグを追加する (AWS CLI)
<a name="how-to-tag-report-group-add-cli"></a>

作成時にレポートグループにタグを追加するには、「[レポートグループの作成 (CLI)](report-group-create.md#test-report-group-create-cli)」を参照してください。`CreateReportGroup.json` で、タグを追加します。

 既存のレポートグループにタグを追加するには、「[レポートグループの更新 (CLI)](report-group-export-settings.md#update-report-group-cli)」を参照し、`UpdateReportGroupInput.json` でタグを追加します。

以下の手順では、 AWS CLI の最新版をすでにインストールしているか、最新版に更新しているものとします。詳細については、「[AWS Command Line Interfaceのインストール](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)」を参照してください。

# レポートグループのタグを表示する
<a name="how-to-tag-report-group-list"></a>

タグは、 AWS リソースを識別して整理し、リソースへのアクセスを管理するのに役立ちます。タグの使用の詳細については、「[タグ付けのベストプラクティス](https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)」ホワイトペーパーを参照してください。タグベースのアクセスポリシーの例については、「[Deny or allow actions on report groups based on resource tags](auth-and-access-control-using-tags.md#report-group-tag-policy-example)」を参照してください。

## レポートグループのタグを表示する (コンソール)
<a name="how-to-tag-report-group-list-console"></a>

CodeBuild コンソールを使用して、CodeBuild レポートグループに関連付けられたタグを表示できます。

1. CodeBuild コンソール ([https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)) を開きます。

1. [**Report groups (レポートグループ)**] で、タグを表示するレポートグループの名前を選択します。

1. ナビゲーションペインで **[設定]** を選択します。

## レポートグループのタグを表示する (AWS CLI)
<a name="how-to-tag-report-group-list-cli"></a>

を使用してレポートグループの AWS タグ AWS CLI を表示するには、次の手順に従います。いずれのタグも追加されていない場合、返されるタグは空になります。

1.  コンソールまたは AWS CLI を使用して、レポートグループの ARN を見つけます。その ARN をメモしておきます。

------
#### [ AWS CLI ]

    次のコマンドを実行します。

   ```
   aws list-report-groups
   ```

    このコマンドは、以下のような JSON 形式の情報を返します。

   ```
   {
       "reportGroups": [
           "arn:aws:codebuild:region:123456789012:report-group/report-group-1",
           "arn:aws:codebuild:region:123456789012:report-group/report-group-2",
           "arn:aws:codebuild:region:123456789012:report-group/report-group-3"
       ]
   }
   ```

   レポートグループの ARN はそのグループの名前で終わります。この名前はレポートグループの ARN を識別するために使用できます。

------
#### [ Console ]

   1. CodeBuild コンソール ([https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)) を開きます。

   1. [**Report groups (レポートグループ)**] で、表示するタグが付いたレポートグループの名前を選択します。

   1.  [**Configuration (設定)**] で、レポートグループの ARN を見つけます。

------

1.  次のコマンドを実行します。`--report-group-arns` パラメータにはメモしておいた ARN を使用します。

   ```
   aws codebuild batch-get-report-groups --report-group-arns arn:aws:codebuild:region:123456789012:report-group/report-group-name
   ```

    成功すると、このコマンドは、以下のような `tags` セクションを含む JSON 形式の情報を返します。

   ```
   {
       ...                        
       "tags": {
           "Status": "Secret",
           "Project": "TestBuild"
       }
       ...
   }
   ```

# レポートグループのタグを編集する
<a name="how-to-tag-report-group-update"></a>

レポートグループに関連付けられたタグの値を変更できます。キーの名前を変更することもできます。これは、現在のタグを削除して、新しい名前と他のタグと同じ値を持つ、別のタグを追加することになります。キーフィールドと値フィールドに使用できる文字には制限があります。詳細については、「[タグ](limits.md#tag-limits)」を参照してください。

**重要**  
レポートグループのタグを編集すると、そのレポートグループへのアクセスに影響を与える可能性があります。レポートグループのタグの名前 (キー) または値を編集する前に、タグのキーや値を使用してレポートグループなどのリソースへのアクセスをコントロールする可能性のある IAM ポリシーを必ず確認してください。タグベースのアクセスポリシーの例については、「[Deny or allow actions on report groups based on resource tags](auth-and-access-control-using-tags.md#report-group-tag-policy-example)」を参照してください。

## レポートグループのタグを編集する (コンソール)
<a name="how-to-tag-report-group-update-console"></a>

CodeBuild コンソールを使用して、CodeBuild レポートグループに関連付けられたタグを編集できます。

1. CodeBuild コンソール ([https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)) を開きます。

1. [**Report groups (レポートグループ)**] で、タグを編集するレポートグループの名前を選択します。

1. ナビゲーションペインで **[設定]** を選択します。

1. **[編集]** を選択します。

1. 次のいずれかを行ってください。
   + タグを変更するには、[**Key**] に新しい名前を入力します。タグの名前を変更することは、タグを削除して、新しいキー名を持つタグを追加することになります。
   + タグの値を変更するには、新しい値を入力します。値を空にする場合は、現在の値を削除してフィールドを空のままにします。

1. タグの編集を完了したら、[**Submit**] を選択します。

## レポートグループのタグを編集する (AWS CLI)
<a name="how-to-tag-report-group-update-cli"></a>

 レポートグループのタグを追加、変更、または削除するには、「[レポートグループの更新 (CLI)](report-group-export-settings.md#update-report-group-cli)」を参照してください。`UpdateReportGroupInput.json` のタグを更新します。

# レポートグループからタグを削除
<a name="how-to-tag-report-group-delete"></a>

レポートグループに関連付けられた 1 つ以上のタグを削除できます。タグを削除しても、そのタグに関連付けられている他の AWS リソースからタグは削除されません。

**重要**  
レポートグループからタグを削除すると、そのレポートグループへのアクセスに影響を与える可能性があります。レポートグループからタグを削除する前に、タグのキーや値を使用してレポートグループなどのリソースへのアクセスをコントロールする可能性のある IAM ポリシーを必ず確認してください。タグベースのアクセスポリシーの例については、「[タグを使用して AWS CodeBuild リソースへのアクセスを制御する](auth-and-access-control-using-tags.md)」を参照してください。

## レポートグループからタグを削除する (コンソール)
<a name="how-to-tag-report-group-delete-console"></a>

CodeBuild コンソールを使用して、タグと レポートグループとの関連付けを解除できます。

1. CodeBuild コンソール ([https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)) を開きます。

1. [**Report groups (レポートグループ)**] で、タグを削除するレポートグループの名前を選択します。

1. ナビゲーションペインで **[設定]** を選択します。

1. **[編集]** を選択します。

1. 削除するタグを見つけ、[**Remove tag**] を選択します。

1. タグの削除を完了したら、[**Submit**] を選択します。

## レポートグループからタグを削除する (AWS CLI)
<a name="how-to-tag-report-group-delete-cli"></a>

を使用して CodeBuild レポートグループからタグ AWS CLI を削除するには、次の手順に従います。タグを削除してもそのタグがなくなるわけではありません。タグとレポートグループとの関連付けが解除されるだけです。

**注記**  
CodeBuild レポートグループを削除すると、削除されたレポートグループからすべてのタグの関連付けが解除されます。レポートグループを削除する前にタグを削除する必要はありません。

 レポートグループから 1 つ以上のタグを削除するには、「[レポートグループのタグを編集する (AWS CLI)](how-to-tag-report-group-update.md#how-to-tag-report-group-update-cli)」を参照してください。JSON 形式のデータの `tags` セクションを、削除するタグが含まれていない最新のタグのリストで更新します。すべてのタグを削除する場合は、`tags` セクションを以下のように更新します。

```
"tags: []"
```

# レポートグループの更新
<a name="report-group-export-settings"></a>

 レポートグループを更新するときは、生のテスト結果データを Amazon S3 バケット内のファイルにエクスポートするかどうかに関する情報を指定できます。S3 バケットへのエクスポートを選択した場合は、レポートグループについて以下を指定します。
+ 生のテスト結果ファイルが ZIP ファイルに圧縮されているかどうか。
+ 生のテスト結果ファイルが暗号化されているかどうか。次のいずれかの方法で暗号化を指定できます。
  + Amazon S3 AWS マネージドキー 用の 。 Amazon S3 
  + ユーザーが作成して設定するカスタマー管理のキー。

詳細については、「[データの暗号化](security-encryption.md)」を参照してください。

を使用してレポートグループ AWS CLI を更新する場合は、タグを更新または追加することもできます。詳細については、「[でレポートグループにタグを付ける AWS CodeBuildレポートグループにタグを付ける](how-to-tag-report-group.md)」を参照してください。

**注記**  
プロジェクトで指定した CodeBuild サービスロールは、S3 バケットにアップロードするアクセス許可に使用されます。

**Topics**
+ [レポートグループの更新 (コンソール)](#update-report-group-console)
+ [レポートグループの更新 (CLI)](#update-report-group-cli)

## レポートグループの更新 (コンソール)
<a name="update-report-group-console"></a>

次の手順で、 AWS マネジメントコンソールを使用してレポートグループを更新します。

**レポートグループを更新するには**

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) で AWS CodeBuild コンソールを開きます。

1.  ナビゲーションペインで、[**Report groups (レポートグループ)**] を選択します。

1. 更新するレポートグループを選択します。

1. **[編集]** を選択します。

1. [**Backup to Amazon S3**] (Amazon S3 にバックアップ) を選択または選択解除します。このオプションを選択した場合は、エクスポート設定を指定します。

   1. [**S3 bucket name (S3 バケット名)**] に、S3 バケットの名前を入力します。

   1. [**Path prefix (パスプレフィックス)**] に、テスト結果をアップロードする S3 バケットのパスを入力します。

   1. 生のテスト結果データファイルを圧縮するには、[**Compress test result data in a zip file (テスト結果データを圧縮する)**] を選択します。

   1. [**Additional configuration (追加の設定)**] を展開して、暗号化オプションを表示します。次のいずれかを選択します。
      + Amazon S3 AWS マネージドキー の を使用する**デフォルトの AWS マネージドキー**。詳細については、*AWS Key Management Service ユーザーガイド*の「[カスタマー マネージド CMKs](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。これはデフォルトの暗号化オプションです。
      + **カスタムキーを選択して**、ユーザーが作成して設定するカスタマー管理のキーを使用します。**AWS KMS 暗号化キー**の場合は、暗号化キーの ARN を入力します。形式は ` arn:aws:kms:<region-id>: <aws-account-id>:key/<key-id> ` です。詳細については、*AWS Key Management Service ユーザーガイド*の「[KMS キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」を参照してください。
      + 暗号化を無効にするには、**アーティファクト暗号化を無効**にします。テスト結果を共有したり、静的ウェブサイトに公開したりする場合は、このオプションを選択します。(動的ウェブサイトでは、テスト結果を復号化するコードを実行できます)。

## レポートグループの更新 (CLI)
<a name="update-report-group-cli"></a>

次の手順で、 AWS CLIを使用してレポートグループを更新します。

**レポートグループを更新するには**

1. `UpdateReportGroupInput.json` という名前のファイルを作成します。

1. 以下を `UpdateReportGroupInput.json` にコピーします。

   ```
   {
       "arn": "",
       "exportConfig": {
           "exportConfigType": "S3",
           "s3Destination": {
               "bucket": "bucket-name", 
               "path": "path", 
               "packaging": "NONE | ZIP",
               "encryptionDisabled": "false",
               "encryptionKey": "your-key"
            }
        },
        "tags": [
           {
               "key": "tag-key",
               "value": "tag-value"
           }
        ]
   }
   ```

1. レポートグループの ARN を `arn` 行に入力します (`"arn":"arn:aws:codebuild:region:123456789012:report-group/report-group-1")` など)。

1. レポートグループに適用する更新内容で `UpdateReportGroupInput.json` を更新します。
   + レポートグループを更新して生のテスト結果ファイルを S3 バケットにエクスポートする場合は、`exportConfig` セクションを更新します。`bucket-name` を S3 バケット名に、`path` をファイルをエクスポートする S3 バケット内のパスに置き換えます。エクスポートされたファイルを `packaging` に圧縮する場合は、`ZIP` を指定します。それ以外の場合は、`NONE` を指定します。エクスポートされたファイルを暗号化するかどうかを指定するために `encryptionDisabled` を使用します。エクスポートしたファイルを暗号化する場合は、カスタマー管理のキーを入力します。
   + 生のテスト結果ファイルを S3 バケットにエクスポートしないようにレポートグループを更新する場合は、`exportConfig` セクションを以下の JSON で更新します。

     ```
     { 
       "exportConfig": {
           "exportConfigType": "NO_EXPORT"
       }
     }
     ```
   + レポートグループのタグを更新する場合は、`tags` セクションを更新します。タグは変更、追加、または削除できます。すべてのタグを削除する場合は、以下の JSON で更新します。

     ```
     "tags": []
     ```

1.  次のコマンドを実行します。

   ```
   aws codebuild update-report-group \
   --cli-input-json file://UpdateReportGroupInput.json
   ```