2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

서클CI에서 코드 커버리지 체크는 어떻게 하나요?

_____
Q1: 서클CI에서 코드 커버리지란 무엇인가요?
A1: 코드 커버리지는 테스트가 코드의 몇 퍼센트를 실행했는지를 나타내는 지표로, 서클CI에서 이를 측정하고 보고하여 테스트 품질을 관리할 수 있습니다.

Q2: 서클CI에서 코드 커버리지 데이터를 어떻게 수집하나요?
A2: 서클CI는 자체적으로 커버리지 수집을 하진 않으며, 일반적으로 프로젝트에 사용 중인 테스트 커버리지 도구(예: Jest, Istanbul, Coverage.py 등)를 실행하여 커버리지 데이터를 생성합니다. 이후 해당 데이터를 서클CI 워크플로우에서 업로드하거나 분석합니다.

Q3: 코드 커버리지 체크를 위해 어떤 단계를 서클CI config에 추가해야 하나요?
A3: 기본적으로 다음과 같은 단계가 포함됩니다.
1. 커버리지 도구를 설치 및 실행할 테스트 명령어 실행 (예: `npm test -- --coverage`)
2. 생성된 커버리지 리포트 파일(예: coverage/lcov.info)을 워크플로우 아티팩트로 저장하거나 외부 서비스로 전송
3. 필요시 커버리지 리포트를 기반으로 커버리지 기준을 검사하는 스크립트 혹은 툴 실행

Q4: 커버리지 리포트를 외부 서비스와 연동할 수 있나요?
A4: 네, Coveralls, Codecov 같은 커버리지 리포트 서비스와 연동할 수 있습니다. 서클CI config 파일에 해당 서비스 업로드 스크립트를 추가해 자동으로 커버리지 정보를 전송할 수 있습니다.

Q5: 서클CI에서 코드 커버리지 기준 미달 시 빌드 실패 시킬 수 있나요?
A5: 직접적으로 서클CI가 커버리지 기준을 판정하지는 않지만, 커버리지 기준을 확인하는 스크립트(예: 커스텀 셸 스크립트, nyc 커맨드 옵션)를 테스트 단계에 포함시켜 기준 미달 시 프로세스를 실패시키면 빌드가 실패하도록 할 수 있습니다.

Q6: 서클CI에서 코드 커버리지 체크 예제 config는 어떻게 되나요?
A6: 예를 들어 자바스크립트 Jest 기반 프로젝트에서:
```yaml
version: 2.1
jobs:
test:
docker:
- image: cimg/node:16.13
steps:
- checkout
- run:
name: Install dependencies
command: npm install
- run:
name: Run tests with coverage
command: npm test -- --coverage
- run:
name: Check coverage threshold
command: npx jest --coverage --coverageThreshold='{ "global": { "branches": 80, "functions": 80, "lines": 80, "statements": 80 } }'
- store_artifacts:
path: coverage/lcov-report
destination: coverage-report
- store_test_results:
path: test-results
workflows:
test_and_coverage:
jobs:
- test
```

Q7: 요약하자면, 서클CI에서 코드 커버리지 체크 방법은?
A7:
1. 프로젝트 내에서 코드 커버리지 도구를 설정하고 커버리지 리포트 생성
2. 서클CI 워크플로우에서 테스트 실행 및 리포트 생성 스크립트 포함
3. 커버리지 기준 검사 스크립트 추가하여 기준 충족 여부 확인
4. 필요한 경우 Coveralls, Codecov 등 외부 서비스 연동
5. 리포트 아티팩트 저장 및 빌드 실패 조건으로 설정할 수 있음

이렇게 하면 서클CI에서 코드 커버리지 체크를 효과적으로 수행할 수 있습니다.
서클CI에서 코드 커버리지 체크를 구현하는 방법은 다음과 같습니다.

코드 커버리지 도구는 사용하는 프로그래밍 언어와 프레임워크에 따라 다를 수 있지만, 일반적인 흐름은 비슷합니다.

여기서는 JavaScript(예: Jest), Python(예: pytest), Java(예: JaCoCo)와 같은 언어를 사용하는 경우를 예시로 설명하겠습니다.

1. 커버리지 도구 설치 각 언어에 맞는 커버리지 도구를 설치해야 합니다.

예를 들어, JavaScript의 경우 Jest 테스트 프레임워크와 함께 연동된 커버리지 도구인 `babel-plugin-istanbul`을 사용할 수 있습니다.

```bash 예: Jest의 경우 npm install --save-dev jest npm install --save-dev jest-cli npm install --save-dev babel-plugin-istanbul ```

2. 테스트 스크립트 작성 테스트를 작성하여 코드의 각 부분을 실행해 보도록 합니다.

예를 들어, Jest의 경우 `__tests__/` 디렉터리에 테스트 파일을 작성할 수 있습니다.

```javascript // 예: sample.test.js test('adds 1 + 2 to equal 3', () => { expect(1 +

2).toBe(

3); }); ```

3. CircleCI 설정 파일(`.circleci/config.yml`) 작성 CircleCI에서 테스트와 커버리지 체크를 수행하기 위한 설정 파일을 다음과 같이 작성합니다.

```yaml version:

2.1 executors: node-executor: docker: - image: circleci/node:latest jobs: test: executor: node-executor steps: - checkout - run: name: Install Dependencies command: npm install - run: name: Run Tests with Coverage command: npm test -- --coverage workflows: version: 2 test-workflow: jobs: - test ```

4. 커버리지 리포트 생성 테스트가 실행되면 커버리지 리포트가 생성됩니다.

위의 예시에서는 Jest를 사용하는 경우 `coverage` 디렉터리에 리포트가 생성됩니다.

이 리포트를 CircleCI의 Artifacts로 저장하여 후에 확인할 수 있습니다.

```yaml - store_artifacts: path: coverage/ destination: coverage ```

5. 커버리지 리포트 확인 커버리지 리포트가 CircleCI의 Artifacts에 저장되므로, CircleCI 대시보드에서 이전 빌드의 세부 정보로 가서 `coverage` 디렉터리에서 커버리지 리포트를 확인할 수 있습니다.

위의 방법은 CircleCI에서 코드 커버리지를 체크하는 기본적인 흐름입니다.

사용하는 언어와 도구에 따라 세부 사항은 다를 수 있으니, 각 도구의 공식 문서를 참조하여 추가적인 설정이나 옵션을 확인하는 것이 좋습니다.

작성자: 박예원 [비회원] | 작성일자: 1년 전 2025-03-22 03:01:42
조회수: 185 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.