728x90
반응형
테스트 코드를 열심히 작성했고, 이제 얼마나 잘 작성했는지 보기위해 Jacoco를 써보기로 했다.
1. Build gradle
build gradle에 아래 내용을 추가해주자.
plugins {
id 'jacoco'
}
jacocoTestReport {
reports {
html.enabled true
xml.enabled false
csv.enabled true
html.destination file("jacoco/jacocoHtml")
xml.destination file("jacoco/jacoco.xml")
}
def Qdomains = []
for(qPattern in "**/QA" .. "**/QZ"){
Qdomains.add(qPattern+"*")
}
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it,
exclude: [] + Qdomains)
}))
}
finalizedBy 'jacocoTestCoverageVerification'
}
jacocoTestCoverageVerification {
def Qdomains = []
for (qPattern in "*.QA".."*.QZ") { // qPattern = "*.QA","*.QB","*.QC", ... "*.QZ"
Qdomains.add(qPattern + "*")
}
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.*',
] + Qdomains
}
}
}
2. gitignore
### jacoco ###
jacoco/
3. Test
테스트 코드를 동작해본다.
4. index.html
위 사진 경로에 생성된 index.html 파일을 열어본다.
참고
Gradle 프로젝트에 JaCoCo 설정하기 | 우아한형제들 기술블로그 (woowahan.com)
728x90
반응형
'Back-End > Spring Boot' 카테고리의 다른 글
Spring boot | Spring Apache Kafka 사용법 ( with Docker Container ) | Producer (0) | 2023.03.02 |
---|---|
Spring boot | Spring Apache Kafka 사용법 ( with Docker Container ) | Kafka 설치 (0) | 2023.03.02 |
Spring Boot | MockMvc with Spring Security and RestDocs (0) | 2023.02.21 |
Spring Boot | Mysql 연동하는 방법 (0) | 2022.11.03 |
Sping Boot | Backend Project | AWS S3 upload 구현 (0) | 2022.11.01 |