Android Gradle 플러그인은 테스트에서 커버하는 코드의 비율을 추적하는 코드 커버리지 보고서를 만들 수 있습니다. 이 페이지에서는 커버리지 보고를 사용 설정하고 보고서를 생성하는 방법을 설명합니다.
각 변형의 각 테스트 유형 (단위 및 계측)에 대한 커버리지 보고서를 생성할 수 있습니다. 다양한 테스트 유형, 모듈, 빌드 변형에 걸쳐 통합 커버리지 보고서를 생성할 수도 있습니다.
코드 커버리지 사용 설정
커버리지 보고서를 가져오려는 각 변형의 모듈 수준 빌드 파일에서 enableAndroidTestCoverage 및 enableUnitTestCoverage를 true로 설정하여 코드 커버리지를 사용 설정해야 합니다.
Kotlin
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage = true // Enable coverage for instrumentation tests enableAndroidTestCoverage = true } } }
Groovy
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage true // Enable coverage for instrumentation tests enableAndroidTestCoverage true } } }
Jacoco 버전 변경 (선택사항)
모듈에서 커버리지를 사용 설정하면 AGP가 Jacoco를 자동으로 적용합니다. 하지만 특정 버전의 Jacoco를 사용해야 하는 경우 모듈 수준 빌드 파일에서 이를 지정할 수 있습니다.
Kotlin
android { jacoco { version = "JACOCO_VERSION" } }
Groovy
android { jacoco { version = 'JACOCO_VERSION' } }
변형별 커버리지 보고서 생성
특정 변형의 단위 테스트 또는 계측 테스트에만 적용되는 커버리지 보고서를 생성하려면 해당하는 작업을 실행합니다.
| 테스트 유형 | 명령어 | 보고서 위치 |
|---|---|---|
| 단위 테스트 | ./gradlew :module-name:createVariantNameUnitTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/test/variant/index.html |
| 계측 테스트 | ./gradlew :module-name:createVariantNameAndroidTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html |
통합 코드 커버리지 보고서 생성
createCoverageReport 및 createAggregatedCoverageReport Gradle 작업을 사용하여 통합 코드 커버리지 보고서를 생성할 수 있습니다. 이러한 작업을 사용하여 다양한 테스트 유형 (단위 및 계측), 모듈, 빌드 변형의 커버리지 데이터를 통합하는 단일 HTML 보고서를 생성할 수 있습니다.
이를 통해 단일 대시보드에서 프로젝트의 코드 커버리지를 포괄적으로 확인할 수 있습니다.
기본 요건
- Android Gradle 플러그인 9.2.0-alpha07 이상
통합 보고서를 생성하려면 명령줄에서 다음 작업 중 하나를 실행합니다.
| 커버리지 범위 | 명령어 | 설명 | 보고서 위치 |
|---|---|---|---|
| 현재 모듈 | ./gradlew :module-name:createCoverageReport |
모든 테스트 유형의 데이터를 병합하여 현재 모듈의 통합 커버리지 보고서를 생성합니다. | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| 현재 모듈 및 종속 항목 | ./gradlew :module-name:createAggregatedCoverageReport |
현재 모듈과 모든 종속 항목의 통합 커버리지 보고서를 생성합니다. 이 작업은 게시가 사용 설정된 앱 모듈 및 라이브러리 모듈에 사용할 수 있습니다. | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
생성된 HTML 보고서 방문 페이지에는 모든 모듈의 개략적인 요약이 표시됩니다. 모듈에서 패키지로, 패키지에서 클래스로, 클래스에서 소스 파일로 드릴다운할 수 있습니다. 파일을 클릭하면 줄 및 브랜치 커버리지에 강조표시된 코드가 표시됩니다.
- 녹색: 커버된 줄
- 빨간색: 커버되지 않는 줄
- 노란색: 부분 커버리지 (일부 명령어 또는 브랜치 누락)