쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

'AWS CLI샘플을 사용한 테스트 보고서'

포커스 모드

이 페이지에서

'AWS CLI샘플을 사용한 테스트 보고서' - AWS CodeBuild

buildspec 파일에 지정한 테스트는 빌드 중에 실행됩니다. 이 샘플에서는 AWS CLI를 사용하여 CodeBuild의 빌드에 테스트를 통합하는 방법을 보여 줍니다. JUnit을 사용하여 단위 테스트를 만들거나, 다른 도구를 사용하여 구성 테스트를 만들 수 있습니다. 그런 다음 테스트 결과를 평가하여 문제를 해결하거나 애플리케이션을 최적화할 수 있습니다.

CodeBuild API 또는 AWS CodeBuild 콘솔을 사용하여 테스트 결과에 액세스할 수 있습니다. 이 샘플에서는 테스트 결과를 S3 버킷으로 내보내도록 보고서를 구성하는 방법을 보여줍니다.

테스트 보고서 샘플 실행

다음 단계에 따라 테스트 보고서 샘플을 실행합니다.

사전 조건

  • 테스트 케이스를 만듭니다. 이 샘플은 샘플 테스트 보고서에 포함할 테스트 케이스가 있다는 것을 전제로 작성된 것입니다. buildspec 파일에서 테스트 파일의 위치를 지정합니다.

    지원되는 테스트 보고서 파일 형식은 다음과 같습니다.

    • Cucumber JSON(.json)

    • JUnit XML(.xml)

    • NUnit XML(.xml)

    • NUnit3 XML(.xml)

    • TestNG XML(.xml)

    • Visual Studio TRX(.trx)

    • Visual Studio TRX XML(.xml)

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

  • S3 버킷을 만들고 이름을 기록해 둡니다. 자세한 내용을 알아보려면 Amazon S3 사용 설명서의 S3 버킷을 생성하는 방법을 참조하세요.

  • IAM 역할을 생성하고 해당 ARN을 기록해 둡니다. 빌드 프로젝트를 만들 때 ARN이 필요합니다.

  • 역할에 다음 권한이 없는 경우 권한을 추가합니다.

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

    자세한 내용은 테스트 보고 작업에 대한 권한 단원을 참조하십시오.

1단계: 보고서 그룹 생성

  1. CreateReportGroupInput.json이라는 이름의 파일을 만듭니다.

  2. S3 버킷에 테스트 결과를 내보낼 폴더를 만듭니다.

  3. 다음을 CreateReportGroupInput.json에 복사합니다. <bucket-name>는 S3 버킷의 이름을 사용합니다. <path-to-folder>은 S3 버킷의 폴더 경로를 입력합니다.

    { "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<bucket-name>", "path": "<path-to-folder>", "packaging": "NONE" } } }
  4. CreateReportGroupInput.json을 포함하는 디렉터리에서 다음 명령을 실행합니다.

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

    출력은 다음과 같습니다. reportGroup의 ARN을 기록해 둡니다. 이 보고서 그룹을 사용하는 프로젝트를 만들 때 사용합니다.

    { "reportGroup": { "arn": "arn:aws:codebuild:us-west-2:123456789012:report-group/<report-name>", "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<s3-bucket-name>", "path": "<folder-path>", "packaging": "NONE", "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3" } }, "created": 1570837165.885, "lastModified": 1570837165.885 } }

2단계: 보고서 그룹을 사용하여 프로젝트 구성

보고서를 실행하려면 먼저 보고서 그룹으로 구성된 CodeBuild 빌드 프로젝트를 만듭니다. 보고서 그룹에 지정된 테스트 케이스는 빌드를 실행할 때 실행됩니다.

  1. 이름이 buildspec.yml인 buildspec 파일을 만듭니다

  2. 다음 YAML을 buildspec.yml 파일의 템플릿으로 사용합니다. 테스트를 실행하는 명령이 포함되어야 합니다. reports 섹션에서는 테스트 케이스 결과가 포함된 파일을 지정합니다. 이러한 파일에는 CodeBuild로 액세스할 수 있는 테스트 결과가 저장됩니다. 작성되고 30일 후에 만료됩니다. 이러한 파일은 S3 버킷으로 내보내는 원시 테스트 케이스 결과 파일과 다릅니다.

    version: 0.2 phases: install: runtime-versions: java: openjdk8 build: commands: - echo Running tests - <enter commands to run your tests> reports: <report-name-or-arn>: #test file information files: - '<test-result-files>' base-directory: '<optional-base-directory>' discard-paths: false #do not remove file paths from test result files
    참고

    기존 보고서 그룹의 ARN 대신, 생성되지 않은 보고서 그룹의 이름을 지정할 수도 있습니다. ARN 대신 이름을 지정하면 CodeBuild에서 빌드를 실행할 때 보고서 그룹을 만듭니다. 이름에는 프로젝트 이름과 buildspec 파일에 지정한 이름이 project-name-report-group-name 형식으로 포함되어 있습니다. 자세한 내용은 테스트 보고서 생성보고서 그룹 이름 지정 단원을 참조하세요.

  3. project.json이라는 이름의 파일을 만듭니다. 이 파일에는 create-project 명령에 대한 입력이 들어 있습니다.

  4. 다음 JSON을 project.json에 복사합니다. source는 소스 파일이 들어있는 저장소의 유형과 위치를 입력합니다. serviceRole은 사용 중인 역할의 ARN을 지정합니다.

    { "name": "test-report-project", "description": "sample-test-report-project", "source": { "type": "CODECOMMIT|CODEPIPELINE|GITHUB|S3|BITBUCKET|GITHUB_ENTERPRISE|NO_SOURCE", "location": "<your-source-url>" }, "artifacts": { "type": "NO_ARTIFACTS" }, "cache": { "type": "NO_CACHE" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "small" }, "serviceRole": "arn:aws:iam::<your-aws-account-id>:role/service-role/<your-role-name>" }
  5. project.json을 포함하는 디렉터리에서 다음 명령을 실행합니다. 이렇게 하면 이름이 test-project인 프로젝트가 생성됩니다.

    aws codebuild create-project --cli-input-json file://project.json

3단계: 보고서 실행 및 결과 보기

이 섹션에서는 이전에 만든 프로젝트의 빌드를 실행합니다. 빌드 프로세스 중에 CodeBuild에서는 테스트 케이스의 결과가 포함된 보고서를 생성합니다. 보고서는 지정한 보고서 그룹에 포함되어 있습니다.

  1. 빌드를 시작하려면 다음 명령을 실행합니다. test-report-project는 위에서 만든 빌드 프로젝트의 이름입니다. 출력에 나타나는 빌드 ID를 기록해 둡니다.

    aws codebuild start-build --project-name test-report-project
  2. 다음 명령을 실행하여 보고서의 ARN을 포함하여 빌드에 대한 정보를 가져옵니다. <build-id>은 빌드 ID를 지정합니다. 출력의 reportArns 속성에 보고서 ARN을 기록해 둡니다.

    aws codebuild batch-get-builds --ids <build-id>
  3. 보고서에 대한 세부 정보를 가져오려면 다음 명령을 실행합니다. <report-arn>은 보고서 ARN을 지정합니다.

    aws codebuild batch-get-reports --report-arns <report-arn>

    출력은 다음과 같습니다. 이 샘플 출력은 성공했거나, 실패했거나, 건너뛰었거나, 오류가 발생했거나, 알 수 없는 상태를 반환하는 테스트 수를 보여 줍니다.

    { "reports": [ { "status": "FAILED", "reportGroupArn": "<report-group-arn>", "name": "<report-group-name>", "created": 1573324770.154, "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<amzn-s3-demo-bucket>", "path": "<path-to-your-report-results>", "packaging": "NONE", "encryptionKey": "<encryption-key>" } }, "expired": 1575916770.0, "truncated": false, "executionId": "arn:aws:codebuild:us-west-2:123456789012:build/<name-of-build-project>:2c254862-ddf6-4831-a53f-6839a73829c1", "type": "TEST", "arn": "<report-arn>", "testSummary": { "durationInNanoSeconds": 6657770, "total": 11, "statusCounts": { "FAILED": 3, "SKIPPED": 7, "ERROR": 0, "SUCCEEDED": 1, "UNKNOWN": 0 } } } ], "reportsNotFound": [] }
  4. 보고서의 테스트 케이스에 대한 정보를 나열하려면 다음 명령을 실행합니다. <report-arn>은 보고서의 ARN을 지정합니다. 선택 사항인 --filter 매개변수의 경우 하나의 상태 결과(SUCCEEDED, FAILED, SKIPPED, ERROR 또는 UNKNOWN)를 지정할 수 있습니다.

    aws codebuild describe-test-cases \ --report-arn <report-arn> \ --filter status=SUCCEEDED|FAILED|SKIPPED|ERROR|UNKNOWN

    출력은 다음과 같습니다.

    { "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>" } ] }
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.