

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

# `codebuild-tests-run` CLI 명령 사용
<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 명령의 필드를 설명합니다.


| 필드 이름 | Type | 필수 또는 선택 | 정의 | 
| --- | --- | --- | --- | 
|  `test-command`  |  문자열  |  필수  |  이 명령은 테스트를 실행하는 데 사용됩니다.  | 
|  `files-search`  |  문자열  |  필수  |  이 명령은 테스트 파일 목록을 제공합니다. AWS CodeBuild 제공된 [codebuild-glob-search](parallel-test-glob-search.md) CLI 명령 또는 원하는 다른 파일 검색 도구를 사용할 수 있습니다.  `files-search` 명령이 각각 새 줄로 구분된 파일 이름을 출력하는지 확인합니다.   | 
|  `sharding-strategy`  |  Enum  |  선택 사항  |  유효한 값: `equal-distribution`(기본값), `stability`  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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` 환경 변수를 통해 유연한 대안을 제공합니다. 이 변수에는 현재 빌드 샤드에 지정된 테스트 파일 경로의 줄 바꿈으로 구분된 목록이 포함되어 있습니다. 이 환경 변수를 활용하면 다양한 테스트 프레임워크 요구 사항에 쉽게 적응하여 공백으로 구분된 목록과 다른 입력 형식을 기대하는 바람에 부응할 수 있습니다. 또한, 테스트 프레임워크의 필요에 따라 테스트 파일 이름의 형식을 지정할 수도 있습니다. 다음은 Linux에서 Django 프레임워크와 함께 `CODEBUILD_CURRENT_SHARD_FILES`를 사용하는 예제입니다. 여기서 `CODEBUILD_CURRENT_SHARD_FILES`는 Django에서 지원하는 *점 표기법* 파일 경로를 가져오는 데 사용됩니다.

```
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의 범위 내에서만 사용할 수 있습니다.  
또한, 테스트 명령 내부에서 `CODEBUILD_CURRENT_SHARD_FILES`를 사용하는 경우 위의 예제와 같이 `CODEBUILD_CURRENT_SHARD_FILES`를 큰따옴표 안에 넣습니다.