CLI コマンド codebuild-tests-run を使用する - AWS CodeBuild

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CLI コマンド codebuild-tests-run を使用する

AWS CodeBuild は、テストコマンドとテストファイルの場所を入力として受け取る CLI を提供します。これらの入力を持つ CLI は、テストファイル名に基づいて、parallelism フィールドで指定されたシャード数にテストを分割します。テストファイルのシャードへの割り当ては、シャーディング戦略によって決まります。

codebuild-tests-run \ --files-search "codebuild-glob-search '**/__tests__/*.js'" \ --test-command 'npx jest --runInBand --coverage' \ --sharding-strategy 'equal-distribution'

次の表では、codebuild-tests-run CLI コマンドのフィールドについて説明します。

フィールド名 タイプ 必須またはオプション 定義

test-command

String

必須

このコマンドは、テストの実行に使用されます。

files-search

String

必須

このコマンドは、テストファイルのリストを表示します。 AWS CodeBuild 提供されている codebuild-glob-search CLI コマンドまたは任意のファイル検索ツールを使用できます。

注記

files-search コマンドによりファイル名が出力され、それぞれが改行で区切られていることを確認します。

sharding-strategy

列挙型

オプションです。

有効な値: equal-distribution (デフォルト)、stability

  • equal-distribution: テストファイル名に基づいてテストファイルを均等にシャーディングします。

  • stability: ファイル名の一貫したハッシュを使用してテストファイルをシャーディングします。

詳細については、「テスト分割について」を参照してください。

codebuild-tests-run CLI はまず、files-search パラメータで指定されたコマンドを使用してテストファイルのリストを識別します。その後、指定されたシャーディング戦略を使用して、現在のシャード (環境) に指定されたテストファイルのサブセットを決定します。最後に、このテストファイルのサブセットがスペース区切りリストにフォーマットされ、実行前に test-command パラメータで指定されたコマンドの末尾に追加されます。

スペース区切りリストを受け入れないテストフレームワークの場合、codebuild-tests-run CLI は CODEBUILD_CURRENT_SHARD_FILES 環境変数を通じて柔軟な代替手段を提供します。この変数には、現在のビルドシャードに指定されたテストファイルパスの改行区切りリストが含まれています。この環境変数を利用することで、さまざまなテストフレームワーク要件に簡単に適応し、スペース区切りリストとは異なる入力形式が想定される要件に対応できます。さらに、テストフレームワークの必要性に応じてテストファイル名をフォーマットすることもできます。以下は、Django フレームワークを使用した Linux での CODEBUILD_CURRENT_SHARD_FILES の使用例です。以下では、Django によりサポートされているドット表記ファイルパスを取得するために CODEBUILD_CURRENT_SHARD_FILES が使用されています。

codebuild-tests-run \ —files-search "codebuild-glob-search '/tests/test_.py'" \ —test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \ —sharding-strategy 'equal-distribution'
注記

CODEBUILD_CURRENT_SHARD_FILES 環境変数は codebuild-tests-run CLI のスコープ内でのみ使用できることに注意してください。

また、test-command 内で CODEBUILD_CURRENT_SHARD_FILES を使用する場合は、上の例に示すように CODEBUILD_CURRENT_SHARD_FILES を二重引用符で囲んでください。