创建报告组 - AWS CodeBuild

创建报告组

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

创建报告组(buildspec)

使用 buildspec 创建的报告组不会导出原始测试结果文件。您可以查看报告组并指定导出设置。有关更多信息,请参阅 更新报告组

使用 buildspec 文件创建报告组
  1. 选择与 AWS 账户中的报告组没有关联的报告组名称。

  2. 使用此名称配置 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'

    有关更多信息,请参阅指定测试文件Reports syntax in the buildspec file

  3. commands 部分中,指定运行测试的命令。有关更多信息,请参阅 指定测试命令

  4. 运行构建。构建完成后,将使用 project-name-report-group-name 格式的名称创建一个新的报告组。有关更多信息,请参阅 报告组命名

创建报告组(控制台)

按照以下过程使用 AWS Management Console 创建报告组。

创建报告组
  1. https://console.aws.amazon.com/codesuite/codebuild/home 打开 AWS CodeBuild 控制台。

  2. 在导航窗格中,选择报告组

  3. 选择创建报告组

  4. 对于报告组名称,输入报告组的名称。

  5. (可选)对于标签,输入您希望支持 AWS 服务使用的任何标签的名称和值。使用添加行添加标签。最多可以添加 50 个标签。

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

    1. 选择导出到 Amazon S3

    2. 对于 S3 存储桶名称,请输入 S3 存储桶的名称。

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

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

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

    6. 展开其他配置以显示加密选项。选择以下操作之一:

      • 默认 AWS 托管密钥,以针对 Amazon S3 使用 AWS 托管式密钥。有关更多信息,请参阅《AWS Key Management Service 用户指南》中的客户托管 CMK。这是默认加密选项。

      • 选择自定义密钥将使用您创建和配置的客户托管密钥。对于AWS KMS 加密密钥,请输入加密密钥的 ARN。其格式为 arn:aws:kms:<region-id>: <aws-account-id>:key/<key-id> 。有关更多信息,请参阅《AWS Key Management Service 用户指南》中的创建 KMS 密钥

      • 禁用构件加密将禁用加密。如果要共享测试结果或将其发布到静态网站,则可以选择此选项。(动态网站可以运行代码来解密测试结果。)

      有关静态数据加密的更多信息,请参阅数据加密

    注意

    项目中指定的 CodeBuild 服务角色用于获得上传到 S3 存储桶的权限。

  7. 选择创建报告组

创建报告组(CLI)

按照以下过程使用 AWS CLI 创建报告组。

创建报告组
  1. 创建一个名为 CreateReportGroup.json的文件。

  2. 根据您的要求,将以下 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 指定是否要加密导出的文件。如果要加密导出的文件,请输入客户托管密钥。有关更多信息,请参阅 更新报告组

    • 使用以下 JSON 指定测试报告不会导出原始测试文件:

      { "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "NO_EXPORT" } }
    注意

    项目中指定的 CodeBuild 服务角色用于获得上传到 S3 存储桶的权限。

  3. 运行以下命令:

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

创建报告组(AWS CloudFormation)

按照以下说明,使用 AWS CloudFormation 模板创建报告组

使用 AWS CloudFormation 模板创建报告组

您可以使用 AWS CloudFormation 模板文件创建和预配置报告组。有关更多信息,请参阅《AWS CloudFormation 用户指南》。

以下 AWS CloudFormation YAML 模板可创建一个不会导出原始测试结果文件的报告组。

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

以下 AWS 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 存储桶的权限。