[Spring Boot]JaCoCo 적용하기
프레임워크/스프링&스프링부트

[Spring Boot]JaCoCo 적용하기

이 글은 '백기선의 더 자바, 코드를 조작하는 다양한 방법' 강좌를 듣고 해당 내용을 추가로 공부하며 정리한 글입니다.

JaCoCo 적용하기

코드커버리지를 측정하기 위해 여러가지 툴(?) 라이브러리(?)를 찾던 JaCoCo라는 것을 찾아서 쓰임새를 비교해보고자 적용해보았다.

 

JaCoCo가 무엇인지 알아보고 Spring boot 프로젝트에 한번 적용해보는 과정을 기록해보려고 합니다.


JaCoCo란?

이름과 로고에서 알 수 있다시피 Java Code Coverage를 측정하는 라이브러리입니다.  

In computer science, test coverage is a measure used to describe the degree to which the source code of a program is executed when a particular test suite runs.
A program with high test coverage, measured as a percentage, has had more of its source code executed during testing, which suggests it has a lower chance of containing undetected software bugs compared to a program with low test coverage.

- wikipedia

여기서 코드 커버리지란, 소프트웨어의 테스트코드가 얼마나 많은 코드를 충족시키고 있는지에 대한 지표중 하나입니다.

즉, 실행시 테스트가 코드의 얼마나 많은 부분을 실행했는지에 대한 수치이고, 코드 커버리지에 대한 내용은 나중에 다뤄보도록 하겠습니다.


JaCoCo 설정하기

Maven과 Gradle의 경우 설정하는 방법이 조금씩 다르다.

우선 나의 경우 gradle로 진행하였기 때문에 해당 상황에 맞춰서 설정하도록 하겠다.

Gradle

build.gradle 파일을 수정해주면 되는데 다음과 같이 추가해주면 된다.

plugins {
    id 'org.springframework.boot' version '2.5.9'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
    id 'jacoco'
}

jacoco {
    toolVersion = '0.8.5'
}

tasks.withType(Test) {
    jacoco.includeNoLocationClasses = true
}

우선 plugin을 추가해주고 jacoco 버전을 설정해주면 됩니다.

그리고 Test 타입을 갖는 파일을 모두 찾기 위해서 includeNoLocationClasses를 true로 세팅해주면 된다.


JaCoCo 결과

실행하게 되면 build에 reports폴더가 생성되는데 해당 폴더의 index.html을 열어주면 된다.

 

그렇게 하면 열리는 화면에서 다음과 같은 페이지를 확인 할수 있습니다.

이렇게 코드 커버리지를 알 수 있으니까 이를 통해 해당 자바 코드의 커버리지를 관리해주면 된다.