Spring Boot

[Spring Boot] JaCoCo로 테스트 커버리지 확인

공대생안씨 2024. 1. 30. 22:03

1. JaCoCo 란 ?

  • 웹 어플리케이션을 만들면서 테스트 코드 작성은 필수임
  • 테스트 커버리지
    • 단위 테스트를 작성한 메서드나 클래스에 대해서 얼마나 테스트 코드에 포함되어 있는지의 지표
  • JaCoCo (Java Code Coverage) : 자바 진영에서 제공하는 테스트 커버리지 확인 도구

 

2. JaCoCo 적용 방법

 

2-0. 버전 확인, 샘플 프로젝트

  • Spring Boot : 3.2.2
  • Java : 21
  • gradle : 8.5

 

 

GitHub - Engineering-Student-An/jacoco-coverage-practice

Contribute to Engineering-Student-An/jacoco-coverage-practice development by creating an account on GitHub.

github.com

 

2-1. build.gradle

아래 코드 추가

plugins {
    id 'jacoco'
}

jacoco {
    toolVersion = "0.8.11"
}

test {
    finalizedBy jacocoTestReport
}

jacocoTestReport {
    dependsOn test
}
  • jacoco 버전 : 0.8.11 
  • finalizedBy jacocoTestReport : 테스트 종료 후에 항상 리포트 생성
  • dependsOn test : 리포트 생성을 위해서는 테스트가 먼저 실행 되어야 함

 

3. JaCoCo로 테스트 커버리지 확인

 

3-1. Report로 확인

  • 인텔리제이 > 터미널 에 아래 명령어 실행 (gradle로 테스트 실행)
./gradlew test

 

  • 테스트가 완료되면 (루트 경로 > build > reports > jacoco > test > html) 에 index.html 파일이 생김

 

  • index.html 을 실행하면 테스트 커버리지 결과 확인 가능

 

  • 프로젝트 클릭해서 들어가면 커버리지 등 상세 정보를 확인 가능함

 

3-2. 인텔리제이의 Code Coverage for Java 로 확인

  • plugin > Code Coverage for Java 설치

 

  • 테스트 코드를 Coverage 와 실행하기 ( Run ... with Coverage )

 

  • 테스트 실행 후 우측에서 Coverage 확인

 

3-2 (2). Code Coverage for Java 플러그인의 runner를 JaCoco로 변경하기

  • Run > Edit Configuration

 

  • Code Coverage > Modify > Choose coverage runner : JaCoCo

 

  • Run tests with Coverage => 이전에는 보이지 않던 Branch 에 대한 Coverage 도 확인 가능