Codecov
IT 위키
Codecov은 테스트 커버리지를 시각화하고 관리하는 서비스로서, 개발자가 코드베이스 내 어느 부분이 테스트되고 있는지 쉽게 파악할 수 있게 해준다.
개요[편집 | 원본 편집]
Codecov은 CI(지속 통합) 도구와 연동되어 테스트 실행 결과로 생성된 커버리지 리포트(예: lcov, cobertura, coverage.py 등)를 업로드하고, 이를 기반으로 커버리지 비율, 변경에 따른 커버리지 증감, 소스 코드 위에 커버리지 정보 오버레이 등을 제공한다.
주요 기능[편집 | 원본 편집]
- 절대 커버리지 수치 및 변경된 라인에 대한 커버리지 증감 표시 기능
- 소스 코드 뷰 상에서 실행되지 않은(미커버된) 라인 강조
- 커버리지 리포트 병합 및 그룹화 기능 (Components)
- 커버리지 히스토리 및 추세 분석, 비교 기능
- CI 연동 및 자동화 (pull request나 push 시 자동 업로드)
- 공개 저장소에 대해서는 무료 제공
동작 방식[편집 | 원본 편집]
- 1. 테스트 실행 및 커버리지 리포트 생성
- 프로젝트가 CI 환경에서 테스트를 실행하면, 테스트 툴(예: pytest, Coverage.py 등)이 커버리지 정보를 수집해 리포트 파일을 생성한다.
- 2. 커버리지 리포트 업로드
- Codecov에서 제공하는 업로드 액션 또는 명령을 사용해 리포트 파일을 서버에 전송한다.
- 3. 리포트 처리 및 분석
- 업로드된 리포트는 서버 측에서 병합, 필터링, 리포맷, 비교 등의 처리가 이루어지고, 웹 UI 또는 GitHub PR 뷰 등에 결과가 반영된다.
- 4. 시각화 및 피드백
- 소스코드 내 미커버 라인을 강조하거나 라인별 커버리지 통계를 보여 주고, 커버리지 변화가 발생한 부분에 대한 알림이나 PR 코멘트도 가능하다.
장점 및 한계[편집 | 원본 편집]
장점[편집 | 원본 편집]
- 코드의 어떤 부분이 테스트되지 않았는지 명확히 식별할 수 있어서 테스트 품질 개선에 도움
- PR 수준에서 커버리지 변화 알림 제공 → 변경 코드 위주로 테스트 보강 유도
- 여러 커버리지 리포트를 병합하고 그룹화할 수 있어 대규모 코드베이스에서 유용
- 공개 저장소에 대해서는 무료로 사용 가능
한계 및 고려사항[편집 | 원본 편집]
- 사설(private) 저장소나 대규모 프로젝트에서는 요금제 제약이 있을 수 있다
- 커버리지 정보는 “어느 라인이 실행되었는가”만을 기준으로 해서, 테스트의 질 (예: 경계값, 예외 조건 등)은 보증하지 못한다
- 리포트 파일 형식, 경로 일치성, 업로드 설정 등이 잘못되면 누락되거나 잘못된 정보가 반영될 수 있다
활용 팁[편집 | 원본 편집]
- GitHub Actions 등에 `codecov/codecov-action`을 추가해서 자동 업로드 설정
- .codecov.yml`설정 파일을 사용해 무시할 디렉토리나 파일, 최소 커버리지 기준 설정
- Components 기능을 써서 모듈별 또는 패키지별 커버리지 관리
- 커버리지 증감 알림 기능을 적극 이용해 PR 리뷰에서 테스트 누락된 부분 짚기