

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

# 테스트 프레임워크
<a name="test-framework-reporting"></a>

이 섹션의 주제에서는 다양한 테스트 프레임워크에 AWS CodeBuild 대해에서 테스트 보고를 설정하는 방법을 보여줍니다.

**Topics**
+ [Jasmine을 사용하여 테스트 보고 설정](test-report-jasmine.md)
+ [Jest를 사용하여 테스트 보고 설정](test-report-jest.md)
+ [pytest를 사용하여 테스트 보고 설정](test-report-pytest.md)
+ [RSpec을 사용하여 테스트 보고 설정](test-report-rspec.md)

# Jasmine을 사용하여 테스트 보고 설정
<a name="test-report-jasmine"></a>

다음 절차는 [JasmineBDD 테스트 프레임워크](http://jasmine.github.io/)의 AWS CodeBuild에서 테스트 보고를 설정하는 방법을 보여 줍니다.

이 절차를 수행하려면 다음 전제 조건이 필요합니다.
+ 기존 CodeBuild 프로젝트가 있어야 합니다.
+ 프로젝트는 Jasmine 테스트 프레임워크를 사용하도록 설정된 Node.js 프로젝트입니다.

[https://www.npmjs.com/package/jasmine-reporters](https://www.npmjs.com/package/jasmine-reporters) 패키지를 프로젝트의 `package.json` 파일의 `devDependencies` 섹션에 추가합니다. 이 패키지에는 Jasmine과 함께 사용할 수 있는 JavaScript 리포터 클래스의 컬렉션이 있습니다.

```
npm install --save-dev jasmine-reporters
```

아직 없으면 프로젝트의 `test` 파일에 `package.json` 스크립트를 추가합니다. `test` 스크립트는 **npm test**가 실행될 때 Jasmine이 호출되도록 합니다.

```
{
  "scripts": {
    "test": "npx jasmine"
  }
}
```

CodeBuild는 다음과 같은 Jasmine 테스트 리포터를 지원합니다.

**JUnitXmlReporter**  
`JunitXml` 형식으로 보고서를 생성하는 데 사용됩니다.

**NUnitXmlReporter**  
`NunitXml` 형식으로 보고서를 생성하는 데 사용됩니다.

Jasmine과 함께 사용할 수 있는 Node.js 프로젝트에는 기본적으로 Jasmine 구성 및 테스트 스크립트를 포함하는 `spec` 하위 디렉터리가 있습니다.

`JunitXML` 형식으로 보고서를 생성하는 Jasmine을 구성하려면 테스트에 다음 코드를 추가하여 `JUnitXmlReporter` 리포터를 인스턴스화합니다.

```
var reporters = require('jasmine-reporters');

var junitReporter = new reporters.JUnitXmlReporter({
  savePath: <test report directory>,
  filePrefix: <report filename>,
  consolidateAll: true
});

jasmine.getEnv().addReporter(junitReporter);
```

`NunitXML` 형식으로 보고서를 생성하는 Jasmine을 구성하려면 테스트에 다음 코드를 추가하여 `NUnitXmlReporter` 리포터를 인스턴스화합니다.

```
var reporters = require('jasmine-reporters');

var nunitReporter = new reporters.NUnitXmlReporter({
  savePath: <test report directory>,
  filePrefix: <report filename>,
  consolidateAll: true
});

jasmine.getEnv().addReporter(nunitReporter)
```

테스트 보고서는 *<test report directory>*/*<report filename>*으로 지정된 파일로 내보내집니다.

`buildspec.yml` 파일에서 다음 섹션을 추가/업데이트합니다.

```
version: 0.2

phases:
  pre_build:
    commands:
      - npm install
  build:
    commands:
      - npm build
      - npm test

reports:
  jasmine_reports:
    files:
      - <report filename>
    file-format: JUNITXML
    base-directory: <test report directory>
```

`NunitXml` 보고서 형식을 사용하는 경우 `file-format` 값을 다음과 같이 변경합니다.

```
    file-format: NUNITXML
```

# Jest를 사용하여 테스트 보고 설정
<a name="test-report-jest"></a>

다음 절차는 [Jest 테스트 프레임워크](https://jestjs.io/)의 AWS CodeBuild에서 테스트 보고를 설정하는 방법을 보여 줍니다.

이 절차를 수행하려면 다음 전제 조건이 필요합니다.
+ 기존 CodeBuild 프로젝트가 있어야 합니다.
+ 프로젝트는 Jest 테스트 프레임워크를 사용하도록 설정된 Node.js 프로젝트입니다.

[https://www.npmjs.com/package/jest-junit](https://www.npmjs.com/package/jest-junit) 패키지를 프로젝트의 `package.json` 파일의 `devDependencies` 섹션에 추가합니다. CodeBuild는 이 패키지를 사용하여 `JunitXml` 형식으로 보고서를 생성합니다.

```
npm install --save-dev jest-junit
```

아직 없으면 프로젝트의 `test` 파일에 `package.json` 스크립트를 추가합니다. `test` 스크립트는 **npm test**가 실행될 때 Jest가 호출되도록 합니다.

```
{
  "scripts": {
    "test": "jest"
  }
}
```

Jest 구성 파일에 다음을 추가하여 `JunitXml` 리포터를 사용하도록 Jest를 구성하세요. 프로젝트에 Jest 구성 파일이 없는 경우, 프로젝트 루트에 `jest.config.js`라는 파일을 생성하고 다음을 추가하세요. 테스트 보고서는 *<test report directory>*/*<report filename>*으로 지정된 파일로 내보내집니다.

```
module.exports = {
  reporters: [
    'default',
    [ 'jest-junit', {
      outputDirectory: <test report directory>,
      outputName: <report filename>,
    } ]
  ]
};
```

`buildspec.yml` 파일에서 다음 섹션을 추가/업데이트합니다.

```
version: 0.2

phases:
  pre_build:
    commands:
      - npm install
  build:
    commands:
      - npm build
      - npm test

reports:
  jest_reports:
    files:
      - <report filename>
    file-format: JUNITXML
    base-directory: <test report directory>
```

# pytest를 사용하여 테스트 보고 설정
<a name="test-report-pytest"></a>

다음 절차는 [pytest 테스트 프레임워크](https://docs.pytest.org/)의 AWS CodeBuild에서 테스트 보고를 설정하는 방법을 보여 줍니다.

이 절차를 수행하려면 다음 전제 조건이 필요합니다.
+ 기존 CodeBuild 프로젝트가 있어야 합니다.
+ 프로젝트는 pytest 테스트 프레임워크를 사용하도록 설정된 Python 프로젝트입니다.

`build` 파일의 `post_build` 또는 `buildspec.yml` 단계에 다음 항목을 추가합니다. 이 코드는 현재 디렉터리에서 테스트를 자동으로 검색하고 *<test report directory>*/*<report filename>*으로 지정된 파일로 테스트 보고서를 내보냅니다. 보고서는 `JunitXml` 형식을 사용합니다.

```
      - python -m pytest --junitxml=<test report directory>/<report filename>
```

`buildspec.yml` 파일에서 다음 섹션을 추가/업데이트합니다.

```
version: 0.2

phases:
  install:
    runtime-versions:
      python: 3.7
    commands:
      - pip3 install pytest
  build:
    commands:
      - python -m pytest --junitxml=<test report directory>/<report filename>

reports:
  pytest_reports:
    files:
      - <report filename>
    base-directory: <test report directory>
    file-format: JUNITXML
```

# RSpec을 사용하여 테스트 보고 설정
<a name="test-report-rspec"></a>

다음 절차는 [RSpec 테스트 프레임워크](https://rspec.info/)의 AWS CodeBuild에서 테스트 보고를 설정하는 방법을 보여 줍니다.

이 절차를 수행하려면 다음 전제 조건이 필요합니다.
+ 기존 CodeBuild 프로젝트가 있어야 합니다.
+ 프로젝트는 RSpec 테스트 프레임워크를 사용하도록 설정된 Node.js 프로젝트입니다.

`buildspec.yml` 파일에서 다음을 추가/업데이트합니다. 이 코드는 *<test source directory>* 디렉터리에서 테스트를 실행하고 *<test report directory>*/*<report filename>*으로 지정된 파일로 테스트 보고서를 내보냅니다. 보고서는 `JunitXml` 형식을 사용합니다.

```
version: 0.2

phases:
  install:
    runtime-versions:
      ruby: 2.6
  pre_build:
    commands:
      - gem install rspec
      - gem install rspec_junit_formatter
  build:
    commands:
      - rspec <test source directory>/* --format RspecJunitFormatter --out <test report directory>/<report filename>
reports:
    rspec_reports:
        files:
            - <report filename>
        base-directory: <test report directory>
        file-format: JUNITXML
```