SW/Gradle

Gradle: Jacoco 테스트 커버리지 리포트 만들기: 방법, 예제, 가이드

얇은생각 2025. 2. 27. 07:30
반응형

🎯 소개

  • Jacoco는 Java 코드의 테스트 커버리지를 시각적으로 분석하는 도구
  • Gradle 프로젝트에서 Jacoco를 쉽게 설정하고 활용하는 방법을 소개
  • 초보자도 부담 없이 따라올 수 있도록 쉽게 설명

소프트웨어 개발을 하다 보면, 코드가 제대로 테스트되고 있는지 궁금할 때가 많죠? 여기서 Jacoco가 도움을 줍니다! Jacoco는 Java 코드가 테스트 중 얼마나 실행되는지를 시각적으로 보여주는 유용한 도구예요.

이 가이드에서는 Gradle 프로젝트에 Jacoco를 적용하고, 손쉽게 테스트 커버리지 리포트를 생성하는 방법을 알려드릴게요. 설명을 최대한 쉽게 풀었으니, 초보자도 부담 없이 따라올 수 있을 거예요! 😊

 


 

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

 

이 명령어는 다음 작업을 수행합니다:

  1. 프로젝트 정리 (clean).
  2. 프로젝트 빌드 (build).
  3. 테스트 커버리지 리포트 생성 (jacocoTestReport).

 

하지만 여기서 한 가지 문제가 있어요. 만약 테스트가 실패하면 Jacoco 리포트가 생성되지 않는다는 점이죠. 이 문제를 해결해볼까요? 😉

 


 

🔥 테스트가 실패해도 Jacoco 리포트 만들기

  • 테스트가 실패하면 기본적으로 Jacoco 리포트가 생성되지 않음
  • 테스트 실패 여부와 관계없이 리포트를 생성하도록 Gradle 설정 변경 방법 소개

 

❗ 문제: 테스트가 실패하면 리포트가 생성되지 않음

예를 들어, 예상한 커버리지가 **5%**였는데 실제 결과가 **50%**라면, 테스트가 실패하면서 Gradle이 중단될 수 있어요. 그러면 Jacoco 리포트를 확인할 수도 없겠죠.

 

✅ 해결책: 테스트 결과와 상관없이 Jacoco 실행하기

다음 내용을 build.gradle에 추가하면 해결됩니다.

test.finalizedBy jacocoTestReport

 

이제 테스트가 실패해도 리포트가 생성되니 걱정하지 마세요! 😊

 


 

📊 Jacoco 리포트 확인하기

명령어를 실행한 후, 생성된 Jacoco 리포트는 다음 경로에서 확인할 수 있습니다:

/build/reports/jacoco/test/html/

 

🔍 리포트 열어보기

  1. 프로젝트 디렉터리에서 build/reports/jacoco/test/html/ 폴더로 이동합니다.
  2. index.html 파일을 웹 브라우저에서 엽니다.
  3. 다음 항목들을 확인하세요:
    • 총 커버리지 비율
    • 테스트된 코드 라인과 누락된 코드 라인
    • 테스트된 클래스 및 메서드 개수
    • 초록색(테스트됨)과 빨간색(테스트되지 않음) 표시

 

이 리포트를 보면 어떤 부분이 부족한지 한눈에 알 수 있어요! 👀

 


 

⚡ Jacoco 리포트만 실행하면 어떻게 될까요?

  • 테스트를 실행하지 않으면 Jacoco 리포트가 비어 있음
  • Gradle 설정을 변경해 jacocoTestReport 실행 시 자동으로 테스트 실행되도록 설정?

 

테스트를 실행하지 않고 jacocoTestReport만 실행하면 리포트가 생성되지 않아요. 😱

이 문제를 방지하려면 build.gradle에 다음을 추가하세요.

jacocoTestReport.dependsOn test

 

이제 다음 명령어를 실행하면:

gradle jacocoTestReport

 

Gradle이 자동으로 테스트를 먼저 실행한 후 Jacoco 리포트를 생성합니다. 이제 안심하고 실행하세요! 😊

 


 

🎯 마무리하며

💡 핵심 정리

  • Jacoco는 Java 코드 커버리지를 측정하는 필수 도구!
  • 리포트를 생성하려면 먼저 테스트를 실행해야 함.
  • Gradle 설정을 수정하면 테스트 후 자동으로 Jacoco 실행 가능.
  • 리포트를 분석해서 테스트되지 않은 코드를 찾아보자!

📖 더 알아보기

 

이제 Jacoco를 활용해서 코드 커버리지를 철저히 관리해 보세요! 🚀

반응형