翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サンプル CodeBuild を使用して AWS CLI でテストレポートを作成する
buildspec ファイルで指定したテストは、ビルド中に実行されます。このサンプルでは、 を使用して AWS CLI のビルドにテストを組み込む方法を示します CodeBuild。JUnit を使用してユニットテストを作成することも、別のツールを使用して設定テストを作成することもできます。その後、テスト結果を評価して、問題を修正したり、アプリケーションを最適化したりできます。
または AWS CodeBuild コンソールを使用して CodeBuild APIテスト結果にアクセスできます。このサンプルでは、テスト結果が S3 バケットにエクスポートされるようにレポートを設定する方法を示します。
前提条件
-
テストケースの作成 このサンプルは、サンプルテストレポートに含めるテストケースがあるという前提で書かれています。buildspec ファイルでテストファイルの場所を指定します。
以下のテストレポートファイル形式がサポートされています。
-
キューカンバー JSON (.json)
-
JUnit XML (.xml)
-
NUnit XML (.xml)
-
NUnit3 XML (.xml)
-
TestNG XML (.xml)
-
Visual Studio TRX (.trx)
-
Visual Studio TRX XML (.xml)
これらの形式のいずれかでレポートファイルを作成できるテストフレームワークを使用してテストケースを作成します (例えば、「 JUnitプラグイン」、TestNG」、「Cucumber」など)。
-
-
S3 バケットを作成し、その名前を書き留めます。詳細については、Amazon S3 ユーザーガイドの「S3 バケットを作成する方法」を参照してください。
-
IAM ロールを作成し、その を書き留めますARN。ビルドプロジェクトを作成するARNときは、 が必要です。
-
ロールに次の権限がない場合は、追加します。
{ "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases" ] }
詳細については、「テストレポートオペレーションのアクセス許可」を参照してください。
Create a report group
-
CreateReportGroupInput.json
という名前のファイルを作成します。 -
S3 バケットに、テスト結果をエクスポートするフォルダを作成します。
-
以下を
CreateReportGroupInput.json
にコピーします。
で、S3 バケットの名前を使用します。<bucket-name>
で、S3 バケット内のフォルダへのパスを入力します。<path-to-folder>
{ "name": "
<report-name>
", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<bucket-name>
", "path": "<path-to-folder>
", "packaging": "NONE" } } } -
CreateReportGroupInput.json
が含まれているディレクトリで次のコマンドを実行します。aws codebuild create-report-group --cli-input-json file://CreateReportGroupInput.json
出力は次のようになります。の を書き留めARNます
reportGroup
。これは、このレポートグループを使用するプロジェクトを作成するときに使用します。{ "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 } }
レポートグループによるプロジェクトの設定
レポートを実行するには、まずレポートグループで設定された CodeBuild ビルドプロジェクトを作成します。レポートグループに指定されたテストケースは、ビルドの実行時に実行されます。
-
buildspec.yml
という名前の buildspec ファイルを作成します。 -
ファイルのテンプレート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
の形式で含まれます。詳細については、「テストレポートの作成」および「Report group naming」を参照してください。 -
project.json
という名前のファイルを作成します。このファイルには、create-project コマンドの入力が含まれます。 -
以下を にコピー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>
" } -
project.json
が含まれているディレクトリで次のコマンドを実行します。これにより、test-project
という名前のプロジェクトが作成されます。aws codebuild create-project --cli-input-json file://project.json
レポートの実行と結果の表示
このセクションでは、前に作成したプロジェクトのビルドを実行します。ビルドプロセス中に、 はテストケースの結果を含むレポート CodeBuild を作成します。レポートは、指定したレポートグループに含まれます。
-
ビルドを開始するには、次のコマンドを実行します。「
test-report-project
」は、上記で作成されたビルドプロジェクトの名前です。出力に表示されるビルド ID を書き留めます。aws codebuild start-build --project-name test-report-project
-
次のコマンドを実行して、ARNレポートの など、ビルドに関する情報を取得します。
で、ビルド ID を指定します。出力の<build-id>
reportArns
プロパティARNにレポートを書き留めます。aws codebuild batch-get-builds --ids
<build-id>
-
次のコマンドを実行して、レポートの詳細を取得します。には
、レポート を指定しますARN。<report-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": "<your-S3-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": [] } -
レポートのテストケースに関する情報を一覧表示するには、次のコマンドを実行します。には
、レポートの ARN を指定します。オプションの<report-arn>
--filter
パラメータでは、(SUCCEEDED
、FAILED
、SKIPPED
、ERROR
、またはUNKNOWN
) の 1 つのステータス結果指定できます。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>
" } ] }