[React] Vitest 테스트 커버리지 도입하기

2026-03-10 hit count image

Vitest 기반 React 프로젝트에 @vitest/coverage-v8을 활용한 테스트 커버리지 측정 환경을 구축하는 방법을 소개합니다.

react

개요

테스트를 작성하다 보면 “지금 우리 테스트가 코드의 얼마나 많은 부분을 커버하고 있는가?”라는 질문이 자연스럽게 생깁니다. 여러분이 Vitest를 사용하고 있다면, 테스트 커버리지를 통해 이 질문에 대한 답을 얻을 수 있습니다.

이 글에서는 Vitest 기반 React 프로젝트에 테스트 커버리지 측정 환경을 도입한 경험을 공유합니다.

Vitest 도입 배경이 궁금하시다면 Jest 프로젝트에 Vitest 도입하기 - View 테스트 분리 전략을 먼저 읽어보시는 것을 추천합니다.

테스트 커버리지란

테스트 커버리지(Test Coverage)는 테스트가 소스 코드를 얼마나 실행하는지를 수치로 나타낸 지표입니다. 주요 지표는 다음과 같습니다.

지표설명
Statements전체 구문 중 실행된 구문의 비율
Branches조건문(if/else, switch 등)의 각 분기가 실행된 비율
Functions정의된 함수 중 호출된 함수의 비율
Lines전체 코드 라인 중 실행된 라인의 비율

커버리지 수치가 높다고 반드시 좋은 테스트라고 할 수는 없지만, 테스트가 부족한 영역을 발견하는 데 유용한 지표입니다.

환경 설정

Vitest에서 테스트 커버리지를 측정하기 위해서는 다음과 같은 설정이 필요합니다.

패키지 설치

Vitest의 커버리지 측정에는 @vitest/coverage-v8 패키지를 사용합니다. V8 엔진의 내장 커버리지 기능을 활용하므로 별도의 코드 변환(instrumentation) 없이 정확한 커버리지를 측정할 수 있습니다.

React 프로젝트 디렉토리에서 패키지를 설치합니다.

yarn add -D @vitest/coverage-v8

스크립트 추가

React 프로젝트의 package.json에 커버리지 실행 스크립트를 추가합니다.

{
  "scripts": {
    "test:view": "TZ=Asia/Tokyo vitest",
    "test:view:ci": "TZ=Asia/Tokyo vitest run",
    "test:view:coverage": "TZ=Asia/Tokyo vitest run --coverage"
  }
}

vitest run --coverage 명령어는 Vitest를 watch 모드 없이 한 번 실행하면서 커버리지 데이터를 수집합니다.

.gitignore 설정

커버리지 리포트는 로컬에서만 확인하면 되므로, 생성되는 coverage/ 디렉토리를 .gitignore에 추가합니다.

coverage/

커버리지 실행 및 확인

설정이 완료되면 아래 명령어로 커버리지를 생성할 수 있습니다.

yarn test:view:coverage

실행이 완료되면 ./coverage/index.html 파일이 생성됩니다. 이 파일을 브라우저(또는 VSCode의 Live Server)에서 열면 시각적인 커버리지 리포트를 확인할 수 있습니다.

커버리지 리포트 읽는 법

아래는 실제 커버리지 리포트의 예시입니다.

커버리지 리포트 예시

이 리포트에서 확인할 수 있는 핵심 정보는 다음과 같습니다.

  • 전체 커버리지: Statements 80.39%, Branches 50%, Functions 75%, Lines 79.16%
  • 컴포넌트별 상세 커버리지: 각 컴포넌트 파일의 커버리지를 개별적으로 확인 가능
  • 색상으로 한눈에 파악: 초록색은 커버리지가 높은 영역, 노란색/빨간색은 개선이 필요한 영역

예를 들어 위 리포트에서 TargetDeviceAdditionDialog는 Statements 55%, Functions 42.85%로 다른 컴포넌트에 비해 커버리지가 낮은 것을 확인할 수 있습니다. 이처럼 테스트 커버리지를 활용하면 테스트 보강이 필요한 컴포넌트를 쉽게 식별할 수 있습니다.

반면 DeviceDeletionButton, DeviceNameLabel 등은 100% 커버리지를 달성하고 있어 충분한 테스트가 작성되어 있음을 알 수 있습니다.

정리

이번 블로그 포스트에서는 Vitest 기반 React 프로젝트에 테스트 커버리지 측정 환경을 구축하는 방법을 소개했습니다.

Vitest의 커버리지 기능을 활용하면 React 프로젝트에서 테스트가 코드의 어느 부분을 실행하는지 명확하게 파악할 수 있습니다. 이를 통해 테스트 작성의 우선순위를 결정하고, 테스트 품질을 지속적으로 개선할 수 있습니다.

여러분도 테스트 커버리지 리포트를 통해 테스트가 부족한 컴포넌트를 식별하고, 테스트 작성의 우선순위를 결정하는 데 활용해 보시기 바랍니다.

관련 포스트

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

앱 홍보

책 홍보

블로그를 운영하면서 좋은 기회가 생겨 책을 출판하게 되었습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.



SHARE
Twitter Facebook RSS