Cobertura 커버리지 시각화
머지 리퀘스트 diff에서 라인별 커버리지 주석을 표시하기 위해 Cobertura XML 보고서를 사용하는 방법을 설명합니다.
Cobertura XML 보고서를 사용하여 머지 리퀘스트 diff에 라인별 커버리지 주석을 표시합니다. GitLab은 Cobertura XML 보고서를 읽고 변경된 각 라인을 커버됨(녹색), 커버되지 않음(빨간색), 또는 로드되었지만 한 번도 실행되지 않음(주황색)으로 주석 표시합니다. GitLab은 파이프라인의 모든 Stage에서 모든 job의 보고서를 포함합니다. 커버리지 시각화는 artifacts:reports:coverage_report 키워드를 사용합니다. MR 위젯에 커버리지 비율을 표시하거나 커버리지 히스토리 그래프를 채우지는 않습니다. 커버리지 비율을 표시하려면 coverage 키워드를 별도로 구성하세요. Cobertura XML 형식은 원래 Java용으로 개발되었지만, 대부분의 커버리지 프레임워크에서 플러그인이나 내장 익스포터를 통해 지원합니다: simplecov-cobertura (Ruby) gocover-cobertura (Go) cobertura (Node.js) Istanbul (JavaScript) Coverage.py (Python) PHPUnit (PHP) CI/CD 구성 예시 # 다음 예시들은 다양한 프로그래밍 언어에 대한 CI/CD job 구성 방법을 보여줍니다. coverage-report 데모 프로젝트에서 작동하는 예시도 확인할 수 있습니다. JavaScript 예시 # 다음 .gitlab-ci.yml 예시는 Mocha 와 nyc 를 사용하여 커버리지 아티팩트를 생성합니다: test: script: - npm install - npx nyc --reporter cobertura mocha artifacts: reports: coverage_report: coverage_format: cobertura path: coverage/cobertura-coverage.xml Java 및 Kotlin 예시 # GitLab 17.6 이상에서는 JaCoCo 형식을 기본으로 지원합니다. 새 프로젝트에는 기본 JaCoCo 보고서 를 사용하세요. 다음 예시는 jacoco2cobertura Docker 이미지를 사용하여 JaCoCo 보고서를 Cobertura 형식으로 변환합니다. Maven 예시 # test-jdk11 job은 Maven 을 사용하여 JaCoCo XML 아티팩트를 생성합니다. coverage-jdk11 job은 이를 Cobertura 형식으로 변환합니다: 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: paths: - target/site/jacoco/jacoco.xml coverage-jdk11: # `visualize` stage는 기본적으로 존재하지 않습니다. # 먼저 정의하거나 `deploy`와 같은 기존 stage를 사용하세요. stage: visualize i