InfoGrab DocsInfoGrab Docs

커버리지 리포팅

GitLab CI/CD에서 테스트 커버리지 비율을 추출하고 머지 리퀘스트 및 분석 화면에 표시하는 방법을 설명합니다.

coverage 키워드를 사용하여 테스트 job의 로그 출력에서 커버리지 비율을 추출하고, 머지 리퀘스트 및 분석 화면에 표시할 수 있습니다. 이 키워드는 커버리지 비율만 표시합니다. MR diff에서 라인별 어노테이션은 생성하지 않습니다. 라인 어노테이션을 표시하려면 artifacts:reports:coverage_report 를 별도로 구성하세요. 커버리지 리포팅 구성 # 커버리지 리포팅을 구성하려면: 테스트 도구의 출력과 일치하는 정규 표현식을 사용하여 job에 coverage 키워드를 추가합니다: test: script: - pytest --cov coverage: '/TOTAL.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' 여러 job에서 커버리지를 집계하려면 각 job에 coverage 키워드를 추가합니다. 커버리지 정규식 패턴 # 다음 정규식 패턴은 일반적인 테스트 커버리지 도구의 출력과 일치합니다. 도구의 출력 형식은 시간이 지남에 따라 변경될 수 있으므로 신중하게 테스트하세요. Python 및 Ruby 도구 언어 명령어 정규식 패턴 pytest-cov Python pytest --cov /TOTAL.*? (100(?:.0+)?% Simplecov-html Ruby rspec spec /Line\sCoverage:\s\d+.\d+%/ C/C++ 및 Rust 도구 언어 명령어 정규식 패턴 gcovr C/C++ gcovr /^TOTAL.*\s+(\d+%)$/ tarpaulin Rust cargo tarpaulin /^\d+.\d+% coverage/ Java 및 JVM 도구 언어 명령어 정규식 패턴 JaCoCo Java/Kotlin ./gradlew test jacocoTestReport /Total.*?([0-9]{1,3})%/ Scoverage Scala sbt coverage test coverageReport /(?i)total.*? (100(?:.0+)?% Node.js 도구 명령어 정규식 패턴 tap tap --coverage-report=text-summary /^Statements\s*:\s*([^%]+)/ nyc nyc npm test /All files[^ jest jest --ci --coverage /All files[^ node:test node --experimental-test-coverage --test /all files[^ PHP 도구 명령어 정규식 패턴 pest pest --coverage --colors=never /Statement coverage[A-Za-z. ]\s :\s*([^%]+)/ phpunit phpunit --coverage-text --colors=never /^\s Lines:\s \d+.\d+%/ Go 도구 명령어 정규식 패턴 go test (single) go test -cover /coverage: \d+.\d+% of statements/ go test (project) go test -coverprofile=cover.profile