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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
Groovy
android { testCoverage { jacocoVersion = '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 |
통합 코드 적용 범위 보고서 생성
testAllSuites 및 testAllSuitesWithDependencies Gradle 작업을 사용하여 통합 코드 적용 범위 보고서를 생성할 수 있습니다. 이러한 작업은 다양한 테스트 유형(단위 및 계측), 모듈, 빌드 변형의 적용 범위 데이터를 통합하는 단일 HTML 보고서를 생성합니다. 이렇게 하면 단일 대시보드에서 프로젝트의 코드 적용 범위를 포괄적으로 확인할 수 있습니다.
기본 요건
- Android Gradle 플러그인 9.5.0-alpha05 이상
- 코드 적용 범위 사용 설정
통합 보고서를 생성하려면 명령줄에서 다음 태스크 중 하나를 실행합니다.
| 보장 범위 | 명령어 | 설명 | 보고서 위치 |
|---|---|---|---|
| 현재 모듈 | ./gradlew :module-name:testAllSuites --continue |
모든 테스트 모음을 테스트하고 현재 모듈의 통합 적용 범위 보고서를 생성하여 모든 테스트 유형의 데이터를 병합합니다. | path-to-your-project/module-name/build/reports/testAllSuites/coverage-report/ |
| 현재 모듈 및 종속 항목 | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
모든 테스트 모음을 테스트하고 현재 모듈과 모든 종속 항목에 대한 통합 적용 범위 보고서를 생성합니다. 이 작업은 앱 모듈과 게시가 사용 설정된 라이브러리 모듈에 사용할 수 있습니다. | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-report/ |
생성된 HTML 보고서 방문 페이지에는 모든 모듈의 개략적인 요약이 표시됩니다. 모듈에서 패키지로, 패키지에서 클래스로, 클래스에서 소스 파일로 드릴다운할 수 있습니다. 파일을 클릭하여 줄 및 분기 적용 범위가 강조 표시된 코드를 확인합니다.
- 녹색: 커버되는 라인
- 빨간색: 커버되지 않는 라인
- 노란색: 부분 적용 범위 (일부 명령어 또는 분기 누락)
계측 테스트에 기기 내 코드 적용 범위 사용
기본적으로 AGP는 앱을 빌드할 때 JaCoCo를 사용하여 앱의 클래스를 계측하여 계측 테스트의 적용 범위를 측정합니다. AGP 9.6.0-alpha01부터는 대신 기기 내 계측을 사용할 수 있습니다. 이 계측은 테스트가 실행되는 동안 테스트 기기에서 앱의 클래스를 계측합니다. 자세한 내용은 코드 적용 범위 보고서 보기 (기기 내 에이전트 사용)를 참고하세요.