🎯 소개
- Jacoco는 Java 코드의 테스트 커버리지를 시각적으로 분석하는 도구
- Gradle 프로젝트에서 Jacoco를 쉽게 설정하고 활용하는 방법을 소개
- 초보자도 부담 없이 따라올 수 있도록 쉽게 설명
소프트웨어 개발을 하다 보면, 코드가 제대로 테스트되고 있는지 궁금할 때가 많죠? 여기서 Jacoco가 도움을 줍니다! Jacoco는 Java 코드가 테스트 중 얼마나 실행되는지를 시각적으로 보여주는 유용한 도구예요.
이 가이드에서는 Gradle 프로젝트에 Jacoco를 적용하고, 손쉽게 테스트 커버리지 리포트를 생성하는 방법을 알려드릴게요. 설명을 최대한 쉽게 풀었으니, 초보자도 부담 없이 따라올 수 있을 거예요! 😊
🤔 Jacoco가 뭘까? 왜 필요할까?
Jacoco(Java Code Coverage)는 무료로 사용할 수 있는 코드 커버리지 분석 도구예요. 쉽게 말해, 테스트 코드가 실제 애플리케이션 코드의 어느 부분까지 실행되는지 한눈에 볼 수 있도록 도와주는 거죠. 그렇다면, Jacoco를 사용하면 어떤 이점이 있을까요?
- 테스트되지 않은 코드 확인: 실행되지 않은 코드와 메서드를 쉽게 찾아낼 수 있어요.
- 소프트웨어 안정성 향상: 중요한 기능들이 충분히 테스트되었는지 체크할 수 있어요.
- 예상치 못한 버그 예방: 코드 변경으로 인해 발생할 수 있는 문제를 미리 발견할 수 있어요.
- 깔끔한 리포트 제공: HTML, XML, CSV 등 다양한 형식의 리포트를 자동으로 생성해 줍니다.
이제 Gradle 프로젝트에서 Jacoco를 설정하는 방법을 알아볼까요? 🚀
🛠 Gradle 프로젝트에서 Jacoco 설정하기
- Gradle에서 Jacoco를 사용하려면 build.gradle 파일에 플러그인을 추가해야 함
- Jacoco가 정상적으로 추가되었는지 확인하는 방법 설명
🔹 1단계: build.gradle 파일에 Jacoco 플러그인 추가하기
Gradle에서 Jacoco를 사용하려면 build.gradle 파일을 열어 플러그인을 추가해야 합니다.
plugins {
id 'jacoco'
}
이제 Gradle에서 Jacoco를 사용할 준비가 완료되었어요!
🔹 2단계: Jacoco가 정상적으로 추가되었는지 확인하기
터미널에서 프로젝트의 루트 디렉터리로 이동한 후, 다음 명령어를 실행해 보세요.
gradle tasks
그러면 Verification tasks 목록에서 다음 항목들을 볼 수 있어야 합니다:
- jacocoTestCoverageVerification
- jacocoTestReport
이 두 가지가 보인다면 설정이 잘 된 거예요. 하지만! Jacoco 리포트를 생성하려면 먼저 테스트가 실행되어야 합니다.
🚀 테스트를 실행한 후 Jacoco 리포트 생성하기
- Jacoco는 기본적으로 테스트를 자동 실행하지 않으므로 사전 실행이 필요
- Gradle 설정을 변경해 테스트 실행 후 리포트 생성하도록 설정
- 실제 테스트 커버리지 리포트를 생성하는 명령어 소개
❗ 왜 테스트를 먼저 실행해야 할까요?
Jacoco는 테스트를 자동으로 실행하지 않아요. 그렇기 때문에 테스트 없이 리포트를 만들려고 하면, 텅 빈 리포트만 생성될 뿐이죠. 이를 방지하려면 Gradle 설정을 추가해야 합니다!
🛠 build.gradle 수정해서 테스트가 먼저 실행되도록 만들기
다음 내용을 build.gradle 파일에 추가하세요.
jacocoTestReport {
dependsOn test
}
이제 jacocoTestReport를 실행하면 테스트가 자동으로 먼저 실행될 거예요! 🎉
🔹 4단계: Jacoco 테스트 커버리지 리포트 실행하기
다음 명령어를 실행해 주세요.
gradle clean build jacocoTestReport
이 명령어는 다음 작업을 수행합니다:
- 프로젝트 정리 (clean).
- 프로젝트 빌드 (build).
- 테스트 커버리지 리포트 생성 (jacocoTestReport).
하지만 여기서 한 가지 문제가 있어요. 만약 테스트가 실패하면 Jacoco 리포트가 생성되지 않는다는 점이죠. 이 문제를 해결해볼까요? 😉
🔥 테스트가 실패해도 Jacoco 리포트 만들기
- 테스트가 실패하면 기본적으로 Jacoco 리포트가 생성되지 않음
- 테스트 실패 여부와 관계없이 리포트를 생성하도록 Gradle 설정 변경 방법 소개
❗ 문제: 테스트가 실패하면 리포트가 생성되지 않음
예를 들어, 예상한 커버리지가 **5%**였는데 실제 결과가 **50%**라면, 테스트가 실패하면서 Gradle이 중단될 수 있어요. 그러면 Jacoco 리포트를 확인할 수도 없겠죠.
✅ 해결책: 테스트 결과와 상관없이 Jacoco 실행하기
다음 내용을 build.gradle에 추가하면 해결됩니다.
test.finalizedBy jacocoTestReport
이제 테스트가 실패해도 리포트가 생성되니 걱정하지 마세요! 😊
📊 Jacoco 리포트 확인하기
명령어를 실행한 후, 생성된 Jacoco 리포트는 다음 경로에서 확인할 수 있습니다:
/build/reports/jacoco/test/html/
🔍 리포트 열어보기
- 프로젝트 디렉터리에서 build/reports/jacoco/test/html/ 폴더로 이동합니다.
- index.html 파일을 웹 브라우저에서 엽니다.
- 다음 항목들을 확인하세요:
- 총 커버리지 비율
- 테스트된 코드 라인과 누락된 코드 라인
- 테스트된 클래스 및 메서드 개수
- 초록색(테스트됨)과 빨간색(테스트되지 않음) 표시
이 리포트를 보면 어떤 부분이 부족한지 한눈에 알 수 있어요! 👀
⚡ Jacoco 리포트만 실행하면 어떻게 될까요?
- 테스트를 실행하지 않으면 Jacoco 리포트가 비어 있음
- Gradle 설정을 변경해 jacocoTestReport 실행 시 자동으로 테스트 실행되도록 설정?
테스트를 실행하지 않고 jacocoTestReport만 실행하면 리포트가 생성되지 않아요. 😱
이 문제를 방지하려면 build.gradle에 다음을 추가하세요.
jacocoTestReport.dependsOn test
이제 다음 명령어를 실행하면:
gradle jacocoTestReport
Gradle이 자동으로 테스트를 먼저 실행한 후 Jacoco 리포트를 생성합니다. 이제 안심하고 실행하세요! 😊
🎯 마무리하며
💡 핵심 정리
- Jacoco는 Java 코드 커버리지를 측정하는 필수 도구!
- 리포트를 생성하려면 먼저 테스트를 실행해야 함.
- Gradle 설정을 수정하면 테스트 후 자동으로 Jacoco 실행 가능.
- 리포트를 분석해서 테스트되지 않은 코드를 찾아보자!
📖 더 알아보기
- Jacoco 공식 문서: https://www.jacoco.org
- Gradle Jacoco 플러그인 가이드: https://docs.gradle.org
이제 Jacoco를 활용해서 코드 커버리지를 철저히 관리해 보세요! 🚀
'SW > Gradle' 카테고리의 다른 글
Gradle: 기반 유닛 테스트: doPost 메서드 테스트하는 방법 (0) | 2025.02.26 |
---|---|
Gradle: JUnit 설정하고 Java 서블릿 doGet 테스트하는 법 (0) | 2025.02.25 |
Gradle: 환경에서 서블릿 테스트하기: JUnit과 Mockito 사용법 (0) | 2025.02.24 |
Gradle: JUnit과 Mockito 설정하는 방법, 예제 (0) | 2025.02.23 |
Gradle: Java 웹 애플리케이션 테스트, JUnit, Mockito, JaCoCo, SonarQube, Jenkins 활용법, 방법, 예제 (0) | 2025.02.22 |