JaCoCo 커버리지 시각화
머지 리퀘스트 diff에서 라인별 커버리지 주석을 표시하기 위해 JaCoCo 커버리지 보고서를 사용하는 방법을 설명합니다.
히스토리 GitLab 17.3에서 jacoco_coverage_reports 라는 플래그 와 함께 도입 됨. 기본적으로 비활성화됨. GitLab 17.6에서 일반적으로 사용 가능 해짐. 기능 플래그 jacoco_coverage_reports 제거됨. JaCoCo 커버리지 보고서를 사용하여 머지 리퀘스트 diff에서 라인별 커버리지 주석을 표시합니다. GitLab은 JaCoCo XML 보고서를 읽고 각 변경된 줄에 커버됨(녹색) 또는 커버되지 않음(빨간색) 주석을 달아줍니다. 커버리지 시각화는 artifacts:reports:coverage_report 키워드를 사용합니다. 이 기능은 MR 위젯에 커버리지 백분율을 표시하거나 커버리지 기록 그래프를 채우지 않습니다. 커버리지 백분율을 표시하려면 coverage 키워드를 별도로 구성하세요. Note 멀티 모듈 프로젝트의 집계 보고서는 지원되지 않습니다. 집계 보고서 지원에 기여하려면 이슈 491015 를 참조하세요. JaCoCo 커버리지 job 추가 # 머지 리퀘스트 diff에서 라인별 커버리지 주석을 표시하려면 JaCoCo 커버리지 job을 추가합니다. 사전 조건: 라인 커버리지 를 제공하는 적절히 형식화된 JaCoCo XML 파일 . JaCoCo 커버리지 job을 추가하려면: artifacts:reports:coverage_report 를 jacoco 로 설정하여 .gitlab-ci.yml 파일에 job을 추가합니다. 예를 들면: test-jdk11: stage: test image: maven:3.6.3-jdk-11 script: - mvn $MAVEN_CLI_OPTS clean org.jacoco:jacoco-maven-plugin:prepare-agent test jacoco:report artifacts: reports: coverage_report: coverage_format: jacoco path: target/site/jacoco/jacoco.xml path 를 생성된 JaCoCo XML 보고서의 위치로 설정합니다. job이 여러 보고서를 생성하는 경우 아티팩트 경로에 와일드카드를 사용합니다 . 커버리지 표시기 # JaCoCo 시각화는 보고서에서 ci (covered instructions)로 표현되는 지시(C0 Coverage) 를 사용합니다. 파이프라인이 완료된 후 커버리지는 다음 표시기와 함께 머지 리퀘스트 diff 뷰에 표시됩니다: 커버된 지시(녹색): 최소 하나의 커버된 지시가 있는 줄 ( ci > 0 ) 커버되지 않은 지시(빨간색): 커버된 지시가 없는 줄 ( ci = 0 ) 커버리지 정보 없음: 커버리지 보고서에 포함되지 않은 줄 예를 들어, 다음 보고서 출력의 경우: < line nr = "83" mi = "2" ci = "0" mb = "0" cb = "0" /> < line nr = "84" mi = "2" ci = "0" mb = "0" cb = "0" /> < line nr = "85" mi = "2" ci = "0" mb =