본문 바로가기
혼자 공부하는 것들/Spring

[Spring Boot] 테스트 커버리지 툴 도입(JaCoCo)

by applepick 2022. 2. 17.
반응형

회사 동기들과 프로젝트를 진행 중에 테스트 커버리지 툴을 도입하자고 설득하여 도입했습니다.

간단히 사용법을 정리해보려고 합니다.

 

build.gradle에 의존성을 추가해줍니다.

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

jacocoTestCoverageVerification {
	violationRules {
		rule {
			// 'element'가 없으면 프로젝트의 전체 파일을 합친 값을 기준으로 한다.
			limit {
				// 'counter'를 지정하지 않으면 default는 'INSTRUCTION'
				// 'value'를 지정하지 않으면 default는 'COVEREDRATIO'
				minimum = 0.30
			}
		}

		rule {
			// 룰을 간단히 켜고 끌 수 있다.
			enabled = true

			// 룰을 체크할 단위는 클래스 단위
			element = 'CLASS'

			// 브랜치 커버리지를 최소한 90% 만족시켜야 한다.
			limit {
				counter = 'BRANCH'
				value = 'COVEREDRATIO'
				minimum = 0.90
			}

			// 라인 커버리지를 최소한 80% 만족시켜야 한다.
			limit {
				counter = 'LINE'
				value = 'COVEREDRATIO'
				minimum = 0.80
			}

			// 빈 줄을 제외한 코드의 라인수를 최대 200라인으로 제한한다.
			limit {
				counter = 'LINE'
				value = 'TOTALCOUNT'
				maximum = 200
			}

			// 커버리지 체크를 제외할 클래스들
			excludes = [
//                    '*.test.*',
			]
		}
	}
}

의존성을 추가하게 되면 아래와 같이 

Tasks -> verification -> test가 생기게 됩니다. 클릭하여 테스트 코드를 돌리게 되면

build 안에 index.html 파일이 생깁니다. 엑셀 파일, html, 등등... 파일 저장방법을 설정해줄 수 있습니다.

html 파일을 실행시키면 테스트 코드 커버리지를 확인해볼 수 있습니다. 실패한 테스트 케이스와 성공한 테스트 케이스. duration과 커버리지 퍼센트를 알 수 있습니다.  아래의 게시글을 참고하여 구성했습니다. 추후에 테스트 커버리지가 일정 퍼센트가 넘어야 빌드를 할 수 있도록

추가해볼 예정입니다. 감사합니다. 

👍 참고 글

https://techblog.woowahan.com/2661/

 

Gradle 프로젝트에 JaCoCo 설정하기 | 우아한형제들 기술블로그

{{item.name}} 안녕하세요. 상품시스템팀에서 서버 개발(..새발)을 하고 있는 연철입니다. 프로젝트 세팅 중에 찾아보고 삽질했던 내용들이 도움이 될까 하여 남깁니다. JaCoCo는 Java 코드의 커버리지

techblog.woowahan.com

 

반응형

댓글