코드 커버리지는 소스 코드를 기반으로 수행하는 화이트 박스 테스트
소프트웨어의 테스트 케이스가 얼마나 충족되었는지를 나타내는 지표 중 하나이다.
테스트를 진행했을때 코드 자체가 얼마나 실행되었느냐고, 이는 수치를 통해 확인을 할 수 있다
Java
의 코드 커버리지를 체크하는 라이브러리
테스트코드를 돌리고 그 커버리지 결과를 보기 좋게 html, xml, csv 같은 리포트로 생성
출처 및 더 자세한 설명
// 플러그인 추가
plugins {
id 'jacoco'
}
test {
useJUnitPlatform()
finalizedBy jacocoTestReport
}
jacoco {
// jacoco 버전
toolVersion = "0.8.8"
}
jacocoTestReport {
dependsOn test
reports {
xml.required = false
csv.required = false
html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
}
// 프로젝트가 평가된 후 실행할 수 있도록 하는 gradle 라이프 사이클에 관한 메서드
afterEvaluate {
// 커버리지가 리포트로 작성할 소스 파일
classDirectories.setFrom(
// 지정된 파일을 포함하는 ConfigurableFileCollection 타입 반환
files(classDirectories.files.collect {
// classDirectories의 파일들을 돌면서 계층 구조로 된 파일 컬렉션인 file tree 생성
fileTree(dir: it, excludes: [
'com/hiworks/project/folder01/*',
'com/hiworks/project/folder02/*'
])
})
)
}
finalizedBy jacocoTestCoverageVerification
}
jacocoTestCoverageVerification {
violationRules {
rule {
// 해당 rule의 활성화 여부
enabled = true
// 측정 단위
element = 'CLASS'
limit {
// 커버리지 측정의 최소 단위
counter = 'LINE'
// 측정한 counter의 정보를 어떠한 방식으로 보여줄지
value = 'COVEREDRATIO'
// count값을 value에 맞게 표현했을 때 통과할 최소 값(0.00~1.00)
minimum = 0.0
}
// verity에서 제외할 클래스
excludes = [
'com/hiworks/project/folder01/*',
'com/hiworks/project/folder02/*'
]
}
}
}
추가적으로 자주 사용하는 getter, setter, builder는 테스트하기 싫다면
lombok.config
를 root에 두고 다음과 같이 작성하면 된다
lombok.addLombokGeneratedAnnotation = true