Spring 테스트 코드 커버리지 확인하기 (JaCoCo)

서재·2025년 4월 12일

코드 커버리지

테스트 코드는 유지보수 및 예외 경우를 파악하기 위해 작성된다.

코드 커버리지는 테스트가 코드의 얼마나 많은 부분을 실행했는지를 측정하는 지표이다.

아래는 이를 파악하기 위한 설정 방법이다. (Gradle 기준)


Jacoco

코드 커버리지를 측정하고 분석하는 도구이다.
아래와 같이 설정하면 사용할 수 있다.

build.gradle

plugins {
    ...
	id 'jacoco'
}

...

jacoco {
	toolVersion = "0.8.12"
}

코드 커버리지 데이터

/build/jacoco/test.exec

test.exec 파일은 JaCoCo가 테스트 실행 동안 코드 커버리지 데이터를 수집하여 저장한다.

테스트마다 초기화된다.

다만 해당 파일은 바이너리 파일이라 육안으로 확인할 수 없다.


리포트 생성

아래 명령어를 실행하면,
위 바이너리 파일을 기반으로 html 리포트를 생성할 수 있다.

./gradlew jacocoTestReport

build/reports/jacoco/test/html/index.html


리포트 생성 자동화

명령어 사용이 귀찮다면
아래 설정을 통해 테스트할 때마다 자동으로 리포트를 생성하게 할 수 있다.

build.gradle

test {
	finalizedBy jacocoTestReport
}

리포트가 생성되지 않는 경우

IntelliJ를 사용하고 있고,
아래와 같이 테스트를 IDE에서 하고 있다면 생성되지 않는다.

설정을 변경하지 않고 build.gradle에서 실행 버튼 누르면 생긴다.


추가

exec, report의 기본 생성 경로는 위와 같지만,
build.gradle에서 별도의 설정을 통해 커스터마이징할 수 있다.

내부 테스트 코드 뿐만 아니라 외부에서 호출하는 API 테스트의 커버리지도 기록할 수 있다.

  1. 내부 테스트 코드 커버리지를 기록한 기존 exec 파일 제거
  2. 더미 테스트 실행을 통해 새로운 exec 파일 생성
  3. 외부 API 요청
  4. 리포트 생성
profile
입니다.

0개의 댓글