2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

JUnit에서 커버리지 보고서를 생성하는 방법은?

_____
Q1: JUnit 테스트 실행 후 커버리지 보고서를 생성하려면 어떻게 해야 하나요?
A1: JUnit 자체는 커버리지 도구가 아니므로, JaCoCo, Cobertura, 또는 Emma 같은 코드 커버리지 도구를 연동해야 합니다. 이 도구들은 JUnit 테스트 실행 시 코드를 모니터링하여 커버리지 데이터를 수집하고, 최종적으로 HTML, XML, 또는 CSV 형식의 보고서를 생성합니다.

---

Q2: Maven 프로젝트에서 JUnit 테스트와 함께 커버리지 보고서를 생성하는 방법은?
A2: Maven에서는 JaCoCo 플러그인을 사용하는 것이 일반적입니다. `pom.xml`에 JaCoCo Maven 플러그인을 추가하고, `mvn test` 명령 실행 시 자동으로 커버리지 데이터를 수집합니다. 이후 `mvn jacoco:report` 명령으로 HTML 보고서를 생성할 수 있습니다. 예시 플러그인 설정:

```xml

org.jacoco
jacoco-maven-plugin
0.8.8



prepare-agent



report
test

report




```

---

Q3: Gradle 프로젝트에서 JUnit과 커버리지 보고서를 생성하는 방법은?
A3: Gradle에서는 `jacoco` 플러그인을 추가한 후, `gradle test jacocoTestReport` 명령을 통해 커버리지 보고서를 생성할 수 있습니다. 예시 `build.gradle` 설정:

```groovy
plugins {
id 'java'
id 'jacoco'
}

test {
finalizedBy jacocoTestReport
}

jacocoTestReport {
reports {
xml.enabled = true
html.enabled = true
}
}
```

---

Q4: Eclipse IDE에서 JUnit 테스트 실행 후 커버리지 보고서를 보는 방법은?
A4: Eclipse에서는 EclEmma 플러그인을 설치하여 JUnit 테스트를 커버리지 모드로 실행할 수 있습니다. 테스트 실행 시 자동으로 커버리지 데이터를 수집하며, 테스트 후 Eclipse 내에서 라인 별 커버리지 시각화를 제공합니다. 별도의 보고서 파일 생성도 가능합니다.

---

Q5: JaCoCo 커버리지 보고서에는 어떤 정보가 포함되나요?
A5: JaCoCo 보고서에는 메서드, 클래스, 패키지 단위로 다음과 같은 커버리지 비율이 포함됩니다.

- 라인 커버리지 (Line Coverage): 실제 실행된 코드 라인 비율
- 분기 커버리지 (Branch Coverage): 조건문, 분기문의 실행 비율
- 메서드 커버리지 (Method Coverage): 호출된 메서드 비율
- 클래스 커버리지 (Class Coverage): 로드된 클래스 비율

---

Q6: 커버리지 수치가 100%가 아닌 경우 어떻게 개선할 수 있나요?
A6: 커버리지 측정 결과를 보고 테스트되지 않은 코드 라인을 찾아 추가 테스트 케이스를 작성합니다. 조건문과 분기문, 예외 처리 구문 등 테스트 누락 부분을 집중적으로 보완하세요.

---

Q7: JUnit 5에서 커버리지 수집 시 주의할 점이 있나요?
A7: JUnit 5 역시 JaCoCo, EclEmma 등과 같이 작동하며 별도의 설정이 필요 없지만, 모듈 시스템(Java 9 이상) 환경일 경우 JaCoCo 에이전트가 정상 작동하도록 `--add-opens` JVM 옵션 설정이 필요할 수 있습니다.

---

요약:
- JUnit 자체로는 커버리지 측정 불가
- JaCoCo, Cobertura 등 도구 사용 필요
- Maven/Gradle 플러그인 활용해 테스트와 동시에 커버리지 수집 및 보고서 생성 가능
- Eclipse에서는 EclEmma 플러그인으로 GUI 기반 커버리지 확인 가능
- 커버리지 보고서를 바탕으로 테스트 케이스 보완하여 품질 향상 가능
JUnit 자체는 단위 테스트 프레임워크로, 코드 커버리지 보고서를 직접 생성하는 기능을 제공하지 않습니다.

대신, JUnit 테스트를 실행한 후에 커버리지 도구를 함께 사용하여 커버리지 보고서를 생성합니다.

보통 Java 프로젝트에서는 다음과 같은 도구를 주로 사용합니다: 1. JaCoCo (Java Code Coverage Library) JaCoCo는 가장 널리 사용되는 Java 코드 커버리지 도구입니다.

Maven, Gradle, Ant 등과 쉽게 통합할 수 있으며, JUnit 테스트 실행 시 자동으로 커버리지를 수집하고 다양한 형식(HTML, XML, CSV)의 보고서를 생성할 수 있습니다.



2. Cobertura 범용적으로 사용되던 커버리지 도구로, JaCoCo보다 설정이 더 복잡한 편이며 현재는 JaCoCo가 더 많이 쓰이고 있습니다.



3. Emma 이전에 많이 쓰였던 도구지만 개발이 중단된 상태입니다.

--- JUnit과 함께 JaCoCo를 이용해 커버리지 보고서 생성하기 (Maven 기준) 1. 프로젝트에 JaCoCo 플러그인 추가 Maven `pom.xml`에 JaCoCo 플러그인을 설정합니다.

예를 들어: ```xml org.jacoco jacoco-maven-plugin 0.8.10 prepare-agent report test report ```

2. JUnit 테스트 작성 및 실행 이미 작성된 JUnit 테스트가 있다면 `mvn test` 명령으로 테스트를 수행합니다.

이때 JaCoCo 에이전트가 테스트 실행 중 클래스 사용 정보를 수집합니다.



3. 커버리지 보고서 생성 위 설정대로 하면 `mvn test` 이후에 `target/site/jacoco/index.html` 위치에 HTML 형식의 상세한 커버리지 보고서가 생성됩니다.

브라우저로 열어 보면 메서드, 클래스, 패키지 단위로 커버리지 정도를 확인할 수 있습니다.

--- Gradle을 사용하는 경우 Gradle에서도 JaCoCo 플러그인을 추가해 JUnit 테스트 실행과 함께 커버리지 수집 및 보고서 생성이 가능합니다.

예) ```groovy plugins { id 'java' id 'jacoco' } jacoco { toolVersion = "0.8.10" } test { useJUnitPlatform() finalizedBy jacocoTestReport // 테스트 이후 보고서 생성 } jacocoTestReport { reports { html.required = true xml.required = false csv.required = false } } ``` 이후 `gradle test jacocoTestReport`를 실행하면 `build/reports/jacoco/test/html/index.html`에 커버리지가 생성됩니다.

--- 정리 - JUnit은 커버리지 기능이 없으므로, 코드를 계측하는 커버리지 도구와 통합해야 함 - JaCoCo가 현재 가장 많이 쓰이며 설정이 비교적 쉽고 다양한 빌드 도구와 연동 가능 - Maven, Gradle 프로젝트에 각각 맞는 JaCoCo 플러그인을 설정 후 JUnit 테스트를 실행하면 커버리지 수집 및 보고서 생성 가능 - 결과 HTML 보고서를 통해 어느 라인, 메서드, 클래스가 테스트되었는지 시각적으로 확인 가능 이와 같이 JUnit 테스트를 감싸서 커버리지 도구를 함께 실행함으로써 커버리지 보고서를 생성할 수 있습니다.

작성자: 박하은 [비회원] | 작성일자: 1년 전 2025-05-26 02:51:02
조회수: 198 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.