Jacoco-Config
1 JaCoCo 설정
- JaCoCo 플러그인은 크게 4가지 주요 설정 영역이 있습니다:
jacoco { }
: 플러그인의 전역 설정 (Extension)jacocoTestReport
: 리포트 생성 TaskjacocoTestCoverageVerification
: 커버리지 검증 Tasktest { jacoco { } }
: 테스트 Task의 JaCoCo 관련 설정
2 플러그인 전역 설정 (Extension)
jacoco {
// JaCoCo 버전 설정
toolVersion = "0.8.12"
// 리포트 저장 위치 설정
reportsDirectory = layout.buildDirectory.dir('customJacocoReportDir')
// 특정 Task에 JaCoCo 적용
applyTo(myCustomTask)
}
- JaCoCo 플러그인의 기본적인 동작을 정의합니다.
- 버전과 리포트 디렉토리 등 전역 설정을 관리합니다.
2.1 toolVersion
- 사용할 JaCoCo JAR 파일의 버전을 지정합니다.
- String 타입으로 제공됩니다.
- https://www.eclemma.org/jacoco/ 버전 참고
2.2 reportsDirectory
jacoco {
toolVersion = "0.8.12"
// 방법 1: 절대 경로 사용
reportsDirectory = file("$buildDir/reports/jacoco")
// 방법 2: 상대 경로 사용
reportsDirectory = layout.buildDirectory.dir('reports/jacoco')
// 방법 3: 프로젝트 루트 기준 경로 지정
reportsDirectory = layout.projectDirectory.dir('my-reports/jacoco')
}
- 리포트가 생성될 디렉 토리를 지정합니다.
- 기본값:
${project.reporting.baseDir}/jacoco
- DirectoryProperty 타입으로 제공됩니다.
- 일반적으로는 build 디렉토리 내에 리포트를 생성하는 것이 좋습니다. 왜냐하면:
3 리포트 생성 Task (jacocoTestReport)
- JaCoCo는 테스트 실행 결과를 다양한 형식의 리포트로 변환합니다.
- 바이너리 형태의 실행 데이터(.exec)를 사람이나 도구가 읽을 수 있는 형태로 변환합니다.
- jacocoTestReport는 테스트 실행 결과(.exec 파일)가 필요합니다.
- 기본적으로 test 태스크와의 의존관계가 설정되어 있지 않습니다.
- 명시적인 의존관계 설정이 필요합니다.
- jacocoTestReport Task를 통해 리포트 생성을 제어할 수 있습니다.
예시
jacocoTestReport {
// 테스트 Task 의존성
dependsOn test
reports {
// HTML 리포트 설정
html {
required = true
outputLocation = layout.buildDirectory.dir('jacocoHtml')
}
// XML 리포트 설정
xml {
required = false
}
// CSV 리포트 설정
csv {
required = false
}
}
}
3.1 HTML 리포트
html {
// 활성화 여부
required = true
// 출력 위치
outputLocation = layout.buildDirectory.dir('jacocoHtml')
}