

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

# CLI コマンド `codebuild-tests-run` を使用する
<a name="parallel-test-tests-run"></a>

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](parallel-test-glob-search.md) CLI コマンドまたは任意のファイル検索ツールを使用できます。  `files-search` コマンドによりファイル名が出力され、それぞれが改行で区切られていることを確認します。   | 
|  `sharding-strategy`  |  列挙型  |  オプションです。  |  有効な値: `equal-distribution` (デフォルト)、`stability` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/parallel-test-tests-run.html) 詳細については、「[テスト分割について](parallel-test-splitting.md)」を参照してください。  | 

`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` を二重引用符で囲んでください。