

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 의 테스트 보고서 AWS CodeBuild
<a name="test-reporting"></a>

CodeBuild에서 빌드 중에 실행되는 테스트에 대한 세부 정보가 포함된 보고서를 작성할 수 있습니다. 단위 테스트, 구성 테스트 및 기능 테스트와 같은 테스트를 만들 수 있습니다.

지원되는 테스트 보고서 파일 형식은 다음과 같습니다.
+ Cucumber JSON(.json)
+ JUnit XML(.xml)
+ NUnit XML(.xml)
+ NUnit3 XML(.xml)
+ TestNG XML(.xml)
+ Visual Studio TRX(.trx)
+ Visual Studio TRX XML(.xml)

**참고**  
 `cucumber-js`의 지원되는 최신 버전은 7.3.2입니다.

이러한 형식 중 하나로 보고서 파일을 만들 수 있는 테스트 프레임워크로 테스트 케이스를 만듭니다(예: Surefire JUnit plugin, TestNG, Cucumber).

테스트 보고서를 만들려면 테스트 케이스에 관한 정보와 함께 빌드 프로젝트의 buildspec 파일에 보고서 그룹 이름을 추가합니다. 빌드 프로젝트를 실행하면 테스트 케이스가 실행되고 테스트 보고서가 만들어집니다. 테스트 케이스가 실행될 때마다 새로운 테스트 보고서가 보고서 그룹에 생성됩니다. 테스트를 실행하기 전에 보고서 그룹을 만들 필요가 없습니다. 보고서 그룹 이름을 지정하는 경우 보고서를 실행할 때 CodeBuild에서 보고서 그룹을 만듭니다. 이미 존재하는 보고서 그룹을 사용하려면 buildspec 파일에서 해당 ARN을 지정합니다.

테스트 보고서를 사용하여 빌드 실행 중에 문제를 해결할 수 있습니다. 빌드 프로젝트의 여러 빌드에 많은 테스트 보고서가 있는 경우 테스트 보고서를 사용하여 추세와 테스트 및 실패율을 보고 빌드를 쉽게 최적화할 수 있습니다.

보고서는 생성되고 30일 후에 만료됩니다. 만료된 테스트 보고서는 볼 수 없습니다. 테스트 보고서를 30일 이상 보관하려면 테스트 결과의 원시 데이터 파일을 Amazon S3 버킷으로 내보내면 됩니다. 내보낸 테스트 파일은 만료되지 않습니다. S3 버킷에 대한 정보는 보고서 그룹을 생성할 때 지정됩니다.

**참고**  
프로젝트에 지정된 CodeBuild 서비스 역할은 S3 버킷에 업로드하는 권한에 사용됩니다.

**Topics**
+ [테스트 보고서 생성](report-create.md)
+ [코드 범위 보고서 생성](code-coverage-report.md)
+ [CodeBuild에서 보고서 자동 검색](report-auto-discover.md)
+ [보고서 그룹](test-report-group.md)
+ [테스트 프레임워크](test-framework-reporting.md)
+ [테스트 보고서 보기](test-view-reports.md)
+ [테스트 보고서 권한](test-permissions.md)
+ [테스트 보고서 상태](test-report.md)

# 테스트 보고서 생성
<a name="report-create"></a>

 테스트 보고서를 만들려면 buildspec 파일에서 1\$15개의 보고서 그룹으로 구성된 빌드 프로젝트를 실행합니다. 실행 중에 테스트 보고서가 작성됩니다. 보고서 그룹에 지정된 테스트 케이스의 결과가 포함되어 있습니다. 동일한 buildspec 파일을 사용하는 각 후속 빌드에 대해 새 테스트 보고서가 생성됩니다.

**테스트 보고서를 작성하려면**

1. 빌드 프로젝트를 생성합니다. 자세한 내용은 [에서 빌드 프로젝트 생성AWS CodeBuild](create-project.md) 단원을 참조하세요.

1. 테스트 보고서 정보를 사용하여 프로젝트의 buildspec 파일을 구성합니다.

   1. `reports:` 섹션을 추가하고 기존 보고서 그룹의 ARN 또는 보고서 그룹의 이름을 지정합니다.

      ARN을 지정하는 경우 CodeBuild는 해당 보고서 그룹을 사용합니다.

      이름을 지정하는 경우 CodeBuild는 프로젝트 이름과 *<project-name>*-*<report-group-name>* 형식으로 지정한 이름을 사용하여 보고서 그룹을 생성합니다. 이름이 지정된 보고서 그룹이 이미 있는 경우 CodeBuild는 해당 보고서 그룹을 사용합니다.

   1. 보고서 그룹에서 테스트 결과를 포함하는 파일의 위치를 지정합니다. 둘 이상의 보고서 그룹을 사용하는 경우 각각에 대해 테스트 결과 파일 위치를 지정합니다. 빌드 프로젝트가 실행될 때마다 새 테스트 보고서가 만들어집니다. 자세한 내용은 [테스트 파일 지정](report-group-test-cases.md) 단원을 참조하십시오.

   1. `build` 또는 `post_build` 시퀀스의 `commands` 섹션에서 보고서 그룹에 대해 지정한 테스트 케이스를 실행하는 명령을 지정합니다. 자세한 내용은 [테스트 명령 지정](report-group-test-case-commands.md) 단원을 참조하십시오.

   다음은 buildspec `reports` 섹션의 예입니다.

   ```
   reports:
     php-reports:
       files:
         - "reports/php/*.xml"
       file-format: "JUNITXML"
     nunit-reports:
       files:
         - "reports/nunit/*.xml"
       file-format: "NUNITXML"
   ```

1. 빌드 프로젝트의 빌드를 실행합니다. 자세한 내용은 [수동으로 AWS CodeBuild 빌드 실행](run-build.md) 단원을 참조하십시오.

1. 빌드가 완료되면 프로젝트 페이지의 **빌드 기록**에서 새 빌드 실행을 선택하십시오. **보고서**를 선택하여 테스트 보고서를 봅니다. 자세한 내용은 [빌드에 대한 테스트 보고서 보기](test-view-project-reports.md) 단원을 참조하십시오.

# 코드 범위 보고서 생성
<a name="code-coverage-report"></a>

CodeBuild를 사용하면 테스트에 대한 코드 범위 보고서를 생성할 수 있습니다. 다음과 같은 코드 범위 보고서가 제공됩니다.

행 범위  
행 범위는 테스트에서 다루는 명령문 수를 측정합니다. 명령문은 주석이나 조건문을 포함하지 않는 단일 명령입니다.  
`line coverage = (total lines covered)/(total number of lines)`

분기 범위  
분기 범위는 제어 구조의 가능한 모든 분기(예: `if` 또는 `case` 문) 중에서 테스트에 포함되는 분기 수를 측정합니다.  
`branch coverage = (total branches covered)/(total number of branches)`

지원되는 코드 범위 보고서 파일 형식은 다음과 같습니다.
+ JacoCo XML
+ SimpleCov JSON¹
+ Clover XML
+ Cobertura XML
+ LCOV 정보

¹ CodeBuild는 [simplecov-json](https://github.com/vicentllongo/simplecov-json)이 아닌 [simplecov](https://github.com/simplecov-ruby/simplecov)에서 생성된 JSON 코드 범위 보고서를 수락합니다.

## 코드 범위 보고서 생성
<a name="code-coverage-report-create"></a>

코드 범위 보고서를 생성하려면 buildspec 파일에서 1개 이상의 코드 범위 보고서 그룹으로 구성된 빌드 프로젝트를 실행합니다. CodeBuild는 코드 범위 결과를 해석하고 실행에 대한 코드 범위 보고서를 제공합니다. 동일한 buildspec 파일을 사용하는 각 후속 빌드에 대해 새 테스트 보고서가 생성됩니다.

**테스트 보고서를 작성하려면**

1. 빌드 프로젝트를 생성합니다. 자세한 내용은 [에서 빌드 프로젝트 생성AWS CodeBuild](create-project.md) 단원을 참조하세요.

1. 테스트 보고서 정보를 사용하여 프로젝트의 buildspec 파일을 구성합니다.

   1. `reports:` 섹션을 추가하고 보고서 그룹의 이름을 지정합니다. CodeBuild는 프로젝트 이름과 `project-name`-`report-group-name-in-buildspec` 형식으로 지정한 이름을 사용하여 보고서 그룹을 생성합니다. 사용할 보고서 그룹이 이미 있는 경우 해당 ARN을 지정합니다. ARN 대신 해당 이름을 사용하는 경우 CodeBuild에서 새 보고서 그룹을 생성합니다. 자세한 내용은 [Reports syntax in the buildspec file](build-spec-ref.md#reports-buildspec-file) 단원을 참조하십시오.

   1. 보고서 그룹에서 코드 범위 결과를 포함하는 파일의 위치를 지정합니다. 둘 이상의 보고서 그룹을 사용하는 경우 각 보고서 그룹에 대해 결과 파일 위치를 지정합니다. 빌드 프로젝트가 실행될 때마다 새 코드 범위 보고서가 생성됩니다. 자세한 내용은 [테스트 파일 지정](report-group-test-cases.md) 단원을 참조하십시오.

      다음은 test-`results/jacoco-coverage-report.xml`에 있는 JaCoCo XML 결과 파일에 대한 코드 범위 보고서를 생성하는 예제입니다.

      ```
      reports:
        jacoco-report:
          files:
            - 'test-results/jacoco-coverage-report.xml'
          file-format: 'JACOCOXML'
      ```

   1. `build` 또는 `post_build` 시퀀스의 `commands` 섹션에서 코드 범위 분석을 실행하는 명령을 지정합니다. 자세한 내용은 [테스트 명령 지정](report-group-test-case-commands.md) 단원을 참조하십시오.

1. 빌드 프로젝트의 빌드를 실행합니다. 자세한 내용은 [수동으로 AWS CodeBuild 빌드 실행](run-build.md) 단원을 참조하십시오.

1. 빌드가 완료되면 프로젝트 페이지의 **빌드 기록**에서 새 빌드 실행을 선택하십시오. **보고서**를 선택하여 코드 범위 보고서를 확인합니다. 자세한 내용은 [빌드에 대한 테스트 보고서 보기](test-view-project-reports.md) 단원을 참조하십시오.

# CodeBuild에서 보고서 자동 검색
<a name="report-auto-discover"></a>

자동 검색을 통해 CodeBuild는 빌드 단계가 완료된 후 모든 빌드 파일을 검색하고, 지원되는 보고서 파일 유형을 검색하고, 새 테스트 및 코드 적용 범위 보고서 그룹 및 보고서를 자동으로 생성합니다. 검색된 보고서 유형에 대해 CodeBuild는 다음 패턴으로 새 보고서 그룹을 생성합니다.

```
<project-name>-<report-file-format>-AutoDiscovered
```

**참고**  
검색된 보고서 파일의 형식 유형이 동일한 경우 동일한 보고서 그룹 또는 보고서에 배치됩니다.

보고서 자동 검색은 프로젝트 환경 변수에 의해 구성됩니다.

`CODEBUILD_CONFIG_AUTO_DISCOVER`  
이 변수는 빌드 중에 보고서 자동 검색을 비활성화할지 여부를 결정합니다. 기본적으로 보고서 자동 검색은 모든 빌드에 대해 활성화됩니다. 이 기능을 비활성화하려면 `CODEBUILD_CONFIG_AUTO_DISCOVER`를 `false`로 설정합니다.

`CODEBUILD_CONFIG_AUTO_DISCOVER_DIR`  
(선택 사항) 이 변수는 CodeBuild가 잠재적 보고서 파일을 검색할 위치를 결정합니다. CodeBuild는 기본적으로 `**/*`에서 검색합니다.

이러한 환경 변수는 빌드 단계에서 수정할 수 있습니다. 예를 들어 git 브랜치의 빌드에 대한 보고서 자동 검색만 활성화하려는 경우 빌드 프로세스 중에 `main` git 분기를 확인하고 빌드가 `main` 분기에 없는 경우 `CODEBUILD_CONFIG_AUTO_DISCOVER`를 false로 설정할 수 있습니다. 보고서 자동 검색은 콘솔 또는 프로젝트 환경 변수를 사용하여 비활성화할 수 있습니다.

**Topics**
+ [콘솔을 사용하여 보고서 자동 검색 구성](#report-auto-discover-configure-console)
+ [프로젝트 환경 변수를 사용하여 보고서 자동 검색 구성](#report-auto-discover-configure-variable)

## 콘솔을 사용하여 보고서 자동 검색 구성
<a name="report-auto-discover-configure-console"></a>

다음 절차에 따라 콘솔을 사용하여 보고서 자동 검색을 구성합니다.

**콘솔을 사용하여 보고서 자동 검색을 구성하려면**

1. 빌드 프로젝트를 생성하거나 편집할 빌드 프로젝트를 선택합니다. 자세한 내용은 [에서 빌드 프로젝트 생성AWS CodeBuild](create-project.md) 또는 [에서 빌드 프로젝트 설정 변경 AWS CodeBuild](change-project.md) 섹션을 참조하세요.

1. **환경**에서 **추가 구성**을 선택합니다.

1. 보고서 자동 검색을 비활성화하려면 **보고서 자동 검색**에서 **보고서 자동 검색 비활성화**를 선택합니다.

1. (선택 사항) **디렉터리 자동 검색 - 선택 사항**에서 CodeBuild가 지원되는 보고서 형식 파일을 검색할 디렉터리 패턴을 입력합니다. CodeBuild는 기본적으로 `**/*`에서 검색합니다.

## 프로젝트 환경 변수를 사용하여 보고서 자동 검색 구성
<a name="report-auto-discover-configure-variable"></a>

다음 절차에 따라 프로젝트 환경 변수를 사용하여 보고서 자동 검색을 구성합니다.

**프로젝트 환경 변수를 사용하여 보고서 자동 검색을 구성하려면**

1. 빌드 프로젝트를 생성하거나 편집할 빌드 프로젝트를 선택합니다. 자세한 내용은 [에서 빌드 프로젝트 생성AWS CodeBuild](create-project.md) 또는 [에서 빌드 프로젝트 설정 변경 AWS CodeBuild](change-project.md) 섹션을 참조하세요.

1. **환경 변수**에서 다음을 수행합니다.

   1. 보고서 자동 검색을 비활성화하려면 **이름**에 **CODEBUILD\$1CONFIG\$1AUTO\$1DISCOVER**를 입력하고 **값**에 **false**를 입력합니다. 이렇게 하면 보고서 자동 검색이 비활성화됩니다.

   1. (선택 사항) **이름**에 **CODEBUILD\$1CONFIG\$1AUTO\$1DISCOVER\$1DIR**을 입력하고 **값**에 CodeBuild가 지원되는 보고서 형식 파일을 검색해야 하는 디렉터리를 입력합니다. 예를 들어 `output/*xml`은 `output` 디렉터리에서 `.xml` 파일을 검색합니다.

# 보고서 그룹
<a name="test-report-group"></a>

*보고서 그룹*은 그 안에 테스트 보고서가 포함되어 있으며 공유 설정을 지정합니다. buildspec 파일을 사용하여 실행할 테스트 케이스와 빌드할 때 실행할 명령을 지정합니다. 빌드 프로젝트에 구성된 각 보고서 그룹에 대해 빌드 프로젝트를 실행하면 테스트 보고서가 만들어집니다. 보고서 그룹으로 구성된 빌드 프로젝트를 여러 번 실행하면 해당 보고서 그룹에 여러 테스트 보고서가 작성되며, 각각 해당 보고서 그룹에 대해 지정된 동일한 테스트 케이스의 결과가 표시됩니다.

 테스트 케이스는 빌드 프로젝트의 buildspec 파일에 있는 보고서 그룹에 대해 지정됩니다. 하나의 빌드 프로젝트에서 최대 5개의 보고서 그룹을 지정할 수 있습니다. 빌드를 실행하면 모든 테스트 케이스가 실행됩니다. 보고서 그룹에 지정된 각 테스트 케이스의 결과와 함께 새 테스트 보고서가 작성됩니다. 새 빌드를 실행할 때마다 테스트 케이스가 실행되고 새 테스트 보고서가 새 테스트 결과와 함께 만들어집니다.

 보고서 그룹은 둘 이상의 빌드 프로젝트에서 사용할 수 있습니다. 하나의 보고서 그룹으로 작성된 모든 테스트 보고서는 테스트 보고서가 다른 빌드 프로젝트를 사용하여 작성된 경우에도 내보내기 옵션 및 사용 권한과 같은 동일한 구성을 공유합니다. 여러 빌드 프로젝트에서 하나의 보고서 그룹으로 만든 테스트 보고서에는 서로 다른 테스트 케이스 세트(각 빌드 프로젝트마다 테스트 케이스 세트 하나씩)를 실행한 결과가 포함될 수 있습니다. 이는 각 프로젝트의 buildspec 파일에서 보고서 그룹에 대해 서로 다른 테스트 케이스 파일을 지정할 수 있기 때문입니다. 그 buildspec 파일을 편집하여 빌드 프로젝트의 보고서 그룹에 대한 테스트 케이스 파일을 변경할 수도 있습니다. 후속 빌드를 실행하면 업데이트된 buildspec에서 테스트 케이스 파일의 결과를 포함하는 새 테스트 보고서가 생성됩니다.

**Topics**
+ [보고서 그룹 만들기](report-group-create.md)
+ [보고서 그룹 이름 지정](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)

# 보고서 그룹 만들기
<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 Management Console을 사용하여 보고서 그룹을 생성합니다.

**보고서 그룹을 생성하려면**

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(보고서 그룹 생성)**를 선택합니다.

1. **보고서 그룹 이름**은 보고서 그룹의 이름을 입력합니다.

1. (선택 사항) **태그**에 지원 AWS 서비스에서 사용할 태그의 이름과 값을 입력합니다. [**Add row**]를 사용하여 태그를 추가합니다. 최대 50개의 태그를 추가할 수 있습니다.

1. 테스트 보고서 결과의 원시 데이터를 Amazon S3 버킷에 업로드하려면 

   1. **Amazon S3로 내보내기**를 선택합니다.

   1. **S3 버킷 이름**은 S3 버킷의 이름을 입력합니다.

   1. (선택 사항) **S3 버킷 소유자**의 경우 S3 버킷을 소유한 계정의 AWS 계정 식별자를 입력합니다. 이 속성을 사용하여 빌드를 실행하는 계정이 아닌 다른 계정이 소유한 Amazon S3 버킷으로 보고서 데이터를 내보낼 수 있습니다.

   1. **경로 접두사**는 테스트 결과를 업로드할 S3 버킷의 경로를 입력합니다.

   1. 원시 테스트 결과 데이터 파일을 압축하려면 **Compress test result data in a zip file(테스트 결과 데이터를 zip 파일로 압축)**을 선택합니다.

   1. **추가 구성을** 확장하여 암호화 옵션을 표시합니다. 다음 중 하나를 선택합니다.
      + Amazon S3용를 사용하기 AWS 관리형 키 위한 **기본 AWS 관리형 키**입니다. 자세한 내용은AWS Key Management Service 사용 설명서의 [고객 관리형 CMK](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(보고서 그룹 생성)**를 선택합니다.

## 보고서 그룹 생성(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 버킷에 업로드하는 권한에 사용됩니다.

# 보고서 그룹 이름 지정
<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`로 하나의 보고서 그룹을 만든 다음 이름이 `my-project-1`와 `my-project-2`인 서로 다른 두 개의 빌드 프로젝트에서 해당 이름을 사용하고 두 프로젝트의 빌드를 작성하는 경우 두 개의 새 보고서 그룹이 만들어집니다. 그 결과 다음과 같은 이름의 세 개의 보고서 그룹이 만들어집니다.
+  `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을 사용한 후 각 프로젝트의 빌드를 실행해도 보고서 그룹(`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.  공유할 프로젝트를 선택한 다음 **공유**를 선택합니다. 자세한 내용은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 계정 또는를 통해 AWS 리소스를 공유할 수 있는 서비스AWS RAM인 AWS Resource Access Manager ()와 통합됩니다 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 RAM 콘솔 또는를 사용하여이 작업을 수행할 수 AWS CLI 있습니다.

**소유한 공유 보고서 그룹을 공유 해제하려면(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) 단원을 참조하십시오.

 다음은 빌드 프로젝트에 대해 두 개의 보고서 그룹을 지정하는 샘플 `reports` 섹션입니다. 하나는 ARN으로 지정되고 다른 하나는 이름으로 지정됩니다. 이 `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 태그에는 두 부분이 있습니다.
+ **태그 키(예: `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 리소스를 식별 및 구성하고 리소스에 대한 액세스를 관리하는 데 도움이 될 수 있습니다. 먼저 보고서 그룹에 하나 이상의 태그(키-값 페어)를 추가합니다. 보고서 그룹에 태그 수에 대한 제한이 있음을 알아두십시오. 키 및 값 필드에서 사용할 수 있는 문자에 대한 제한이 있습니다. 자세한 내용은 [태그](limits.md#tag-limits) 단원을 참조하십시오. 태그가 생성된 후 해당 태그를 기준으로 보고서 그룹에 대한 액세스를 관리하는 IAM 정책을 생성할 수 있습니다. CodeBuild 콘솔 또는를 사용하여 보고서 그룹에 태그를 AWS CLI 추가할 수 있습니다.

**중요**  
보고서 그룹에 태그를 추가하면 해당 보고서 그룹에 대한 액세스에 영향을 줄 수 있습니다. 보고서 그룹에 태그를 추가하기 전에 보고서 그룹과 같은 리소스에 대한 액세스를 제어하는 태그를 사용할 수도 있는 모든 IAM 정책을 검토하세요. 태그 기반 액세스 정책의 예는 [태그를 사용하여 AWS CodeBuild 리소스에 대한 액세스 제어](auth-and-access-control-using-tags.md) 단원을 참조하세요.

보고서 그룹을 생성할 때 보고서 그룹에 태그를 추가하는 방법에 대한 자세한 내용은 [보고서 그룹 만들기(콘솔)](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. [https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)에서 CodeBuild 콘솔을 엽니다.

1. **보고서 그룹**에서 태그를 추가할 보고서 그룹의 이름을 선택합니다.

1. 탐색 창에서 **설정**을 선택합니다.

1. 보고서 그룹에 추가된 태그가 없는 경우 **태그 추가**를 선택합니다. **편집**을 선택한 다음 **태그 추가**를 선택할 수도 있습니다.

1. **키**에 태그 이름을 입력합니다. **값**에 태그의 선택적 값을 추가할 수 있습니다.

1. (선택 사항) 다른 태그를 추가하려면 다시 **태그 추가**를 선택합니다.

1. 태그 추가를 마쳤으면 **제출**을 선택합니다.

## 보고서 그룹에 태그 추가(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. [https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)에서 CodeBuild 콘솔을 엽니다.

1. **보고서 그룹**에서 태그를 보려는 보고서 그룹의 이름을 선택합니다.

1. 탐색 창에서 **설정**을 선택합니다.

## 보고서 그룹의 태그 보기(AWS CLI)
<a name="how-to-tag-report-group-list-cli"></a>

다음 단계에 따라 AWS CLI 를 사용하여 보고서 그룹의 AWS 태그를 봅니다. 태그가 추가되지 않은 경우 반환된 목록은 비어 있습니다.

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. [https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)에서 CodeBuild 콘솔을 엽니다.

   1. **보고서 그룹**에서 보려는 태그가 있는 보고서 그룹의 이름을 선택합니다.

   1.  **구성**에서 보고서 그룹의 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. [https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)에서 CodeBuild 콘솔을 엽니다.

1. **보고서 그룹**에서 태그를 편집할 보고서 그룹의 이름을 선택합니다.

1. 탐색 창에서 **설정**을 선택합니다.

1. **편집**을 선택합니다.

1. 다음 중 하나를 수행하세요.
   + 태그를 변경하려면 **키**에 새 이름을 입력합니다. 태그 이름을 변경하는 것은 태그를 제거하고 새 키 이름의 새 태그를 추가하는 것과 동일합니다.
   + 태그 값을 변경하려면 새 값을 입력합니다. 값을 어떤 것으로도 변경하지 않으려면 현재 값을 삭제하고 필드를 비워둡니다.

1. 태그 편집을 마쳤으면 **제출**을 선택합니다.

## 보고서 그룹의 태그 편집(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>

보고서 그룹과 연결된 태그를 하나 이상 제거할 수 있습니다. 태그를 제거해도 해당 태그와 연결된 다른 AWS 리소스에서 태그는 삭제되지 않습니다.

**중요**  
보고서 그룹의 태그를 제거하면 해당 보고서 그룹에 대한 액세스에 영향을 줄 수 있습니다. 보고서 그룹에서 태그를 제거하기 전에 보고서 그룹과 같은 리소스에 대한 액세스를 제어하는 태그의 키 또는 값을 사용할 수도 있는 모든 IAM 정책을 검토하세요. 태그 기반 액세스 정책의 예는 [태그를 사용하여 AWS CodeBuild 리소스에 대한 액세스 제어](auth-and-access-control-using-tags.md) 단원을 참조하세요.

## 보고서 그룹에서 태그 제거(콘솔)
<a name="how-to-tag-report-group-delete-console"></a>

CodeBuild 콘솔을 사용하면 태그와 CodeBuild 보고서 그룹 간의 연결을 제거할 수 있습니다.

1. [https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)에서 CodeBuild 콘솔을 엽니다.

1. **보고서 그룹**에서 태그를 제거할 보고서 그룹의 이름을 선택합니다.

1. 탐색 창에서 **설정**을 선택합니다.

1. **편집**을 선택합니다.

1. 제거할 태그를 찾은 다음 **태그 제거**를 선택합니다.

1. 태그 제거를 마쳤으면 **제출**을 선택합니다.

## 보고서 그룹에서 태그 제거(AWS CLI)
<a name="how-to-tag-report-group-delete-cli"></a>

다음 단계에 따라 AWS CLI 를 사용하여 CodeBuild 보고서 그룹에서 태그를 제거합니다. 태그를 제거하면 태그는 삭제되지 않고 태그와 보고서 그룹 간의 연결만 제거됩니다.

**참고**  
CodeBuild 보고서 그룹을 삭제하면 삭제된 보고서 그룹에서 모든 태그 연결이 제거됩니다. 보고서 그룹을 삭제하기 전에 태그를 제거할 필요가 없습니다.

 보고서 그룹에서 하나 이상의 태그를 삭제하려면 [보고서 그룹의 태그 편집(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 관리형 키 용 .
  + 직접 생성하고 구성한 고객 관리형 키.

자세한 내용은 [데이터 암호화](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 Management Console를 사용하여 보고서 그룹을 업데이트합니다.

**보고서 그룹을 업데이트하려면**

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. **Amazon S3로 백업**을 선택하거나 선택을 취소합니다. 이 옵션을 선택한 경우 다음과 같은 내보내기 설정을 지정합니다.

   1. **S3 버킷 이름**은 S3 버킷의 이름을 입력합니다.

   1. **경로 접두사**는 테스트 결과를 업로드할 S3 버킷의 경로를 입력합니다.

   1. 원시 테스트 결과 데이터 파일을 압축하려면 **Compress test result data in a zip file(테스트 결과 데이터를 zip 파일로 압축)**을 선택합니다.

   1. **추가 구성을** 확장하여 암호화 옵션을 표시합니다. 다음 중 하나를 선택합니다.
      + Amazon S3용를 사용하기 AWS 관리형 키 위한 **기본 AWS 관리형 키**입니다. 자세한 내용은AWS Key Management Service 사용 설명서의 [고객 관리형 CMK](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
   ```

# 테스트 프레임워크
<a name="test-framework-reporting"></a>

이 섹션의 주제에서는 다양한 테스트 프레임워크에 AWS CodeBuild 대해에서 테스트 보고를 설정하는 방법을 보여줍니다.

**Topics**
+ [Jasmine을 사용하여 테스트 보고 설정](test-report-jasmine.md)
+ [Jest를 사용하여 테스트 보고 설정](test-report-jest.md)
+ [pytest를 사용하여 테스트 보고 설정](test-report-pytest.md)
+ [RSpec을 사용하여 테스트 보고 설정](test-report-rspec.md)

# Jasmine을 사용하여 테스트 보고 설정
<a name="test-report-jasmine"></a>

다음 절차는 [JasmineBDD 테스트 프레임워크](http://jasmine.github.io/)의 AWS CodeBuild에서 테스트 보고를 설정하는 방법을 보여 줍니다.

이 절차를 수행하려면 다음 전제 조건이 필요합니다.
+ 기존 CodeBuild 프로젝트가 있어야 합니다.
+ 프로젝트는 Jasmine 테스트 프레임워크를 사용하도록 설정된 Node.js 프로젝트입니다.

[https://www.npmjs.com/package/jasmine-reporters](https://www.npmjs.com/package/jasmine-reporters) 패키지를 프로젝트의 `package.json` 파일의 `devDependencies` 섹션에 추가합니다. 이 패키지에는 Jasmine과 함께 사용할 수 있는 JavaScript 리포터 클래스의 컬렉션이 있습니다.

```
npm install --save-dev jasmine-reporters
```

아직 없으면 프로젝트의 `test` 파일에 `package.json` 스크립트를 추가합니다. `test` 스크립트는 **npm test**가 실행될 때 Jasmine이 호출되도록 합니다.

```
{
  "scripts": {
    "test": "npx jasmine"
  }
}
```

CodeBuild는 다음과 같은 Jasmine 테스트 리포터를 지원합니다.

**JUnitXmlReporter**  
`JunitXml` 형식으로 보고서를 생성하는 데 사용됩니다.

**NUnitXmlReporter**  
`NunitXml` 형식으로 보고서를 생성하는 데 사용됩니다.

Jasmine과 함께 사용할 수 있는 Node.js 프로젝트에는 기본적으로 Jasmine 구성 및 테스트 스크립트를 포함하는 `spec` 하위 디렉터리가 있습니다.

`JunitXML` 형식으로 보고서를 생성하는 Jasmine을 구성하려면 테스트에 다음 코드를 추가하여 `JUnitXmlReporter` 리포터를 인스턴스화합니다.

```
var reporters = require('jasmine-reporters');

var junitReporter = new reporters.JUnitXmlReporter({
  savePath: <test report directory>,
  filePrefix: <report filename>,
  consolidateAll: true
});

jasmine.getEnv().addReporter(junitReporter);
```

`NunitXML` 형식으로 보고서를 생성하는 Jasmine을 구성하려면 테스트에 다음 코드를 추가하여 `NUnitXmlReporter` 리포터를 인스턴스화합니다.

```
var reporters = require('jasmine-reporters');

var nunitReporter = new reporters.NUnitXmlReporter({
  savePath: <test report directory>,
  filePrefix: <report filename>,
  consolidateAll: true
});

jasmine.getEnv().addReporter(nunitReporter)
```

테스트 보고서는 *<test report directory>*/*<report filename>*으로 지정된 파일로 내보내집니다.

`buildspec.yml` 파일에서 다음 섹션을 추가/업데이트합니다.

```
version: 0.2

phases:
  pre_build:
    commands:
      - npm install
  build:
    commands:
      - npm build
      - npm test

reports:
  jasmine_reports:
    files:
      - <report filename>
    file-format: JUNITXML
    base-directory: <test report directory>
```

`NunitXml` 보고서 형식을 사용하는 경우 `file-format` 값을 다음과 같이 변경합니다.

```
    file-format: NUNITXML
```

# Jest를 사용하여 테스트 보고 설정
<a name="test-report-jest"></a>

다음 절차는 [Jest 테스트 프레임워크](https://jestjs.io/)의 AWS CodeBuild에서 테스트 보고를 설정하는 방법을 보여 줍니다.

이 절차를 수행하려면 다음 전제 조건이 필요합니다.
+ 기존 CodeBuild 프로젝트가 있어야 합니다.
+ 프로젝트는 Jest 테스트 프레임워크를 사용하도록 설정된 Node.js 프로젝트입니다.

[https://www.npmjs.com/package/jest-junit](https://www.npmjs.com/package/jest-junit) 패키지를 프로젝트의 `package.json` 파일의 `devDependencies` 섹션에 추가합니다. CodeBuild는 이 패키지를 사용하여 `JunitXml` 형식으로 보고서를 생성합니다.

```
npm install --save-dev jest-junit
```

아직 없으면 프로젝트의 `test` 파일에 `package.json` 스크립트를 추가합니다. `test` 스크립트는 **npm test**가 실행될 때 Jest가 호출되도록 합니다.

```
{
  "scripts": {
    "test": "jest"
  }
}
```

Jest 구성 파일에 다음을 추가하여 `JunitXml` 리포터를 사용하도록 Jest를 구성하세요. 프로젝트에 Jest 구성 파일이 없는 경우, 프로젝트 루트에 `jest.config.js`라는 파일을 생성하고 다음을 추가하세요. 테스트 보고서는 *<test report directory>*/*<report filename>*으로 지정된 파일로 내보내집니다.

```
module.exports = {
  reporters: [
    'default',
    [ 'jest-junit', {
      outputDirectory: <test report directory>,
      outputName: <report filename>,
    } ]
  ]
};
```

`buildspec.yml` 파일에서 다음 섹션을 추가/업데이트합니다.

```
version: 0.2

phases:
  pre_build:
    commands:
      - npm install
  build:
    commands:
      - npm build
      - npm test

reports:
  jest_reports:
    files:
      - <report filename>
    file-format: JUNITXML
    base-directory: <test report directory>
```

# pytest를 사용하여 테스트 보고 설정
<a name="test-report-pytest"></a>

다음 절차는 [pytest 테스트 프레임워크](https://docs.pytest.org/)의 AWS CodeBuild에서 테스트 보고를 설정하는 방법을 보여 줍니다.

이 절차를 수행하려면 다음 전제 조건이 필요합니다.
+ 기존 CodeBuild 프로젝트가 있어야 합니다.
+ 프로젝트는 pytest 테스트 프레임워크를 사용하도록 설정된 Python 프로젝트입니다.

`build` 파일의 `post_build` 또는 `buildspec.yml` 단계에 다음 항목을 추가합니다. 이 코드는 현재 디렉터리에서 테스트를 자동으로 검색하고 *<test report directory>*/*<report filename>*으로 지정된 파일로 테스트 보고서를 내보냅니다. 보고서는 `JunitXml` 형식을 사용합니다.

```
      - python -m pytest --junitxml=<test report directory>/<report filename>
```

`buildspec.yml` 파일에서 다음 섹션을 추가/업데이트합니다.

```
version: 0.2

phases:
  install:
    runtime-versions:
      python: 3.7
    commands:
      - pip3 install pytest
  build:
    commands:
      - python -m pytest --junitxml=<test report directory>/<report filename>

reports:
  pytest_reports:
    files:
      - <report filename>
    base-directory: <test report directory>
    file-format: JUNITXML
```

# RSpec을 사용하여 테스트 보고 설정
<a name="test-report-rspec"></a>

다음 절차는 [RSpec 테스트 프레임워크](https://rspec.info/)의 AWS CodeBuild에서 테스트 보고를 설정하는 방법을 보여 줍니다.

이 절차를 수행하려면 다음 전제 조건이 필요합니다.
+ 기존 CodeBuild 프로젝트가 있어야 합니다.
+ 프로젝트는 RSpec 테스트 프레임워크를 사용하도록 설정된 Node.js 프로젝트입니다.

`buildspec.yml` 파일에서 다음을 추가/업데이트합니다. 이 코드는 *<test source directory>* 디렉터리에서 테스트를 실행하고 *<test report directory>*/*<report filename>*으로 지정된 파일로 테스트 보고서를 내보냅니다. 보고서는 `JunitXml` 형식을 사용합니다.

```
version: 0.2

phases:
  install:
    runtime-versions:
      ruby: 2.6
  pre_build:
    commands:
      - gem install rspec
      - gem install rspec_junit_formatter
  build:
    commands:
      - rspec <test source directory>/* --format RspecJunitFormatter --out <test report directory>/<report filename>
reports:
    rspec_reports:
        files:
            - <report filename>
        base-directory: <test report directory>
        file-format: JUNITXML
```

# 테스트 보고서 보기
<a name="test-view-reports"></a>

 테스트 케이스에 대한 정보, 통화 및 실패 횟수, 보고서 실행에 걸린 시간 등 테스트 보고서에 대한 세부 정보를 볼 수 있습니다. 빌드 실행, 보고서 그룹 또는 AWS 계정별로 그룹화된 테스트 보고서를 볼 수 있습니다. 콘솔에서 테스트 보고서를 선택하여 세부 정보 및 테스트 케이스의 결과를 확인합니다.

 만료되지 않은 테스트 보고서를 볼 수 있습니다. 테스트 보고서는 작성되고 30일 후에 만료됩니다. CodeBuild에서 만료된 보고서를 볼 수 없습니다.

**Topics**
+ [빌드에 대한 테스트 보고서 보기](test-view-project-reports.md)
+ [보고서 그룹에 대한 테스트 보고서 보기](test-view-report-group-reports.md)
+ [AWS 계정에서 테스트 보고서 보기](test-view-account-reports.md)

# 빌드에 대한 테스트 보고서 보기
<a name="test-view-project-reports"></a>

**빌드에 대한 테스트 보고서를 보려면**

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) AWS CodeBuild 콘솔을 엽니다.

1.  보려는 빌드를 찾습니다. 테스트 보고서를 만든 빌드를 실행한 프로젝트를 알고 있는 경우: 

   1.  탐색 창에서 **프로젝트 빌드**를 선택한 다음, 보고자 하는 테스트 보고서를 실행한 빌드가 있는 프로젝트를 선택합니다.

   1.  **빌드 기록**을 선택한 다음, 보고자 하는 보고서를 만들어 실행한 빌드를 선택합니다.

    AWS 계정의 빌드 기록에서도 빌드를 찾을 수 있습니다.

   1.  탐색 창에서 **빌드 기록**을 선택한 다음, 보고자 하는 테스트 보고서를 만든 빌드를 선택합니다.

1. 빌드 페이지에서 **보고서**를 선택한 다음 테스트 보고서를 선택하여 세부 정보를 확인합니다.

# 보고서 그룹에 대한 테스트 보고서 보기
<a name="test-view-report-group-reports"></a>

**보고서 그룹에서 테스트 보고서를 보려면**

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) AWS CodeBuild 콘솔을 엽니다.

1.  탐색 창에서 **Report groups(보고서 그룹)**을 선택합니다.

1. 보려는 테스트 보고서가 포함된 보고서 그룹을 선택합니다.

1.  테스트 보고서를 선택하여 세부 정보를 확인합니다.

# AWS 계정에서 테스트 보고서 보기
<a name="test-view-account-reports"></a>



**AWS 계정에서 테스트 보고서를 보려면**

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) AWS CodeBuild 콘솔을 엽니다.

1.  탐색 창에서 **보고서 기록**을 선택합니다.

1.  테스트 보고서를 선택하여 세부 정보를 확인합니다.

# 테스트 보고서 권한
<a name="test-permissions"></a>

 이 주제에서는 테스트 보고와 관련된 사용 권한에 대한 중요한 정보를 설명합니다.

**Topics**
+ [테스트 보고서의 IAM 역할](#test-permissions-required)
+ [테스트 보고 작업에 대한 권한](#test-permissions-related-to-reporting)
+ [테스트 보고 권한 예제](#test-permissions-examples)

## 테스트 보고서의 IAM 역할
<a name="test-permissions-required"></a>

테스트 보고서를 실행하고 테스트 보고서를 포함하도록 프로젝트를 업데이트하려면 IAM 역할에 다음 권한이 필요합니다. 이러한 권한은 미리 정의된 AWS 관리형 정책에 포함됩니다. 기존 빌드 프로젝트에 테스트 보고를 추가하려면 이러한 권한을 직접 추가해야 합니다.
+ `CreateReportGroup` 
+ `CreateReport` 
+ `UpdateReport` 
+ `BatchPutTestCases` 

코드 범위 보고서를 실행하려면 IAM 역할에 `BatchPutCodeCoverages` 권한도 포함되어야 합니다.

**참고**  
`BatchPutTestCases`, `CreateReport`, `UpdateReport` 및 `BatchPutCodeCoverages`는 퍼블릭 권한이 아닙니다. 이러한 권한에 대해 해당 AWS CLI 명령 또는 SDK 메서드를 호출할 수 없습니다.

이러한 권한을 가지려면 다음 정책을 IAM 역할에 연결하면 됩니다.

```
{
    "Effect": "Allow",
    "Resource": [
        "*"
    ],
    "Action": [
        "codebuild:CreateReportGroup",
        "codebuild:CreateReport",
        "codebuild:UpdateReport",
        "codebuild:BatchPutTestCases",
        "codebuild:BatchPutCodeCoverages"
    ]
}
```

이 정책은 사용해야 하는 보고서 그룹으로만 제한하는 것이 좋습니다. 다음은 정책에서 ARN이 두 개인 보고서 그룹으로만 권한을 제한합니다.

```
{
    "Effect": "Allow",
    "Resource": [
        "arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-1",
        "arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-2"
    ],
    "Action": [
        "codebuild:CreateReportGroup",
        "codebuild:CreateReport",
        "codebuild:UpdateReport",
        "codebuild:BatchPutTestCases",
        "codebuild:BatchPutCodeCoverages"
    ]
}
```

다음은 이름이 `my-project`로 지정된 프로젝트의 빌드를 실행하여 만든 보고서 그룹으로만 권한을 제한합니다.

```
{
    "Effect": "Allow",
    "Resource": [
        "arn:aws:codebuild:your-region:your-aws-account-id:report-group/my-project-*"
    ],
    "Action": [
        "codebuild:CreateReportGroup",
        "codebuild:CreateReport",
        "codebuild:UpdateReport",
        "codebuild:BatchPutTestCases",
        "codebuild:BatchPutCodeCoverages"
    ]
}
```

**참고**  
프로젝트에 지정된 CodeBuild 서비스 역할은 S3 버킷에 업로드하는 권한에 사용됩니다.

## 테스트 보고 작업에 대한 권한
<a name="test-permissions-related-to-reporting"></a>

 다음 테스트 보고 CodeBuild API 작업에 대한 권한을 지정할 수 있습니다.
+  `BatchGetReportGroups` 
+  `BatchGetReports` 
+  `CreateReportGroup` 
+  `DeleteReportGroup` 
+  `DeleteReport` 
+  `DescribeTestCases` 
+  `ListReportGroups` 
+  `ListReports` 
+  `ListReportsForReportGroup` 
+  `UpdateReportGroup` 

자세한 내용은 [AWS CodeBuild 권한 참조](auth-and-access-control-permissions-reference.md) 단원을 참조하십시오.

## 테스트 보고 권한 예제
<a name="test-permissions-examples"></a>

 테스트 보고와 관련된 샘플 정책에 대한 내용은 다음을 참조하십시오.
+  [사용자가 보고서 그룹을 변경하도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-change-report-group) 
+  [사용자가 보고서 그룹을 생성하도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-create-report-group) 
+  [사용자가 보고서를 삭제하도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-delete-report) 
+  [사용자가 보고서 그룹을 삭제하도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-delete-report-group) 
+  [사용자가 보고서 그룹에 대한 정보를 가져오도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-get-information-about-report-group) 
+  [사용자가 보고서에 대한 정보를 가져오도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-get-information-about-reports) 
+  [사용자가 보고서 그룹 목록을 가져오도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-get-list-of-report-groups) 
+  [사용자가 보고서 목록을 가져오도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-get-list-of-reports) 
+  [사용자가 보고서 그룹에 대한 보고서 목록을 가져오도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-get-list-of-reports-for-report-group) 
+  [사용자가 보고서에 대한 테스트 케이스 목록을 가져오도록 허용](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-get-list-of-test-cases-for-report) 

# 테스트 보고서 상태
<a name="test-report"></a>

테스트 보고서의 상태는 다음 중 하나일 수 있습니다.
+ `GENERATING`: 테스트 케이스의 실행이 아직 진행 중입니다.
+ `DELETING`: 테스트 보고서가 삭제 중입니다. 테스트 보고서가 삭제되면 그 테스트 케이스도 삭제됩니다. S3 버킷으로 내보낸 원시 테스트 결과 데이터 파일은 삭제되지 않습니다.
+ `INCOMPLETE`: 테스트 보고서가 완료되지 않았습니다. 이 상태는 다음 이유 중 하나 때문에 반환될 수 있습니다.
  + 이 보고서의 테스트 케이스를 지정하는 보고서 그룹의 구성에 문제가 있는 경우. 예를 들어, buildspec 파일의 보고서 그룹 아래의 테스트 케이스 경로가 올바르지 않을 수 있습니다.
  + 빌드를 실행한 IAM 사용자에게 테스트를 실행할 권한이 없는 경우. 자세한 내용은 [테스트 보고서 권한](test-permissions.md) 단원을 참조하십시오.
  + 테스트와 관련이 없는 오류로 인해 빌드가 완료되지 않은 경우.
+ `SUCCEEDED`: 모든 테스트 케이스가 성공했습니다.
+ `FAILED`: 일부 테스트 케이스는 성공하지 못했습니다.

각 테스트 케이스에서 상태를 반환합니다. 테스트 케이스의 상태는 다음 중 하나일 수 있습니다.
+ `SUCCEEDED`: 테스트 케이스가 통과되었습니다.
+ `FAILED`: 테스트 케이스가 실패했습니다.
+ `ERROR`: 테스트 케이스로 인해 예기치 않은 오류가 발생했습니다.
+ `SKIPPED`: 테스트 케이스가 실행되지 않았습니다.
+ `UNKNOWN`: 테스트 케이스가 `SUCCEEDED`, `FAILED`, `ERROR` 또는 `SKIPPED` 이외의 상태를 반환했습니다.

테스트 보고서에는 최대 500개의 테스트 케이스 결과가 있을 수 있습니다. 500개 이상의 테스트 케이스가 실행되는 경우, CodeBuild가 상태 `FAILED`로 우선 순위를 지정하고 테스트 케이스 결과를 잘라냅니다.