

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

# 创建报告组
<a name="report-group-create"></a>

 您可以使用 CodeBuild 控制台 AWS CLI、或 buildspec 文件来创建报告组。您的 IAM 角色必须具有创建报告组所需的权限。有关更多信息，请参阅 [测试报告权限](test-permissions.md)。

**Topics**
+ [创建报告组（buildspec）](#test-report-group-create-buildspec)
+ [创建报告组（控制台）](#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` 格式的名称创建一个新的报告组。有关更多信息，请参阅 [报告组命名](test-report-group-naming.md)。



## 创建报告组（控制台）
<a name="test-report-group-create-console"></a>

按照以下过程使用 AWS 管理控制台创建报告组。

**创建报告组**

1. 在 [https://console.aws.amazon.com/codesuite/codebuild](https://console.aws.amazon.com/codesuite/codebuild/home) /home 中打开 AWS CodeBuild 控制台。

1. 在导航窗格中，选择**报告组**。

1. 选择**创建报告组**。

1. 对于**报告组名称**，输入报告组的名称。

1. （可选）在**标签**中，输入您希望支持 AWS 服务使用的任何标签的名称和值。使用**添加行**添加标签。最多可以添加 50 个标签。

1. 如果您想将测试报告结果的原始数据上传到 Amazon S3 存储桶：

   1. 选择**导出到 Amazon S3**。

   1. 对于 **S3 存储桶名称**，请输入 S3 存储桶的名称。

   1. （可选）对于 **S3 存储桶拥有者**，请输入拥有 S3 存储桶的账户的 AWS 账户标识符。这允许将报告数据导出到 Amazon S3 桶，该存储桶由运行构建的账户以外的账户拥有。

   1. 对于**路径前缀**，请输入要上传测试结果的 S3 存储桶中的路径。

   1. 选择**将测试结果数据压缩为 zip 文件**以便压缩原始测试结果数据文件。

   1. 展开**其他配置**以显示加密选项。选择下列选项之一：
      + 用 AWS 托管式密钥 于 Amazon S3 的@@ **默认 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. 选择**创建报告组**。

## 创建报告组（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
```

 以下 CloudFormation YAML 模板创建了一个报告组，用于将原始测试结果文件导出到 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 存储桶的权限。