InfoGrab Docs

코드 커버리지

코드 커버리지에 대해 설명합니다.

커버리지 데이터는 예측 테스트 선택 , 커버리지 분석 대시보드, 불안정한 테스트 분석 등을 지원합니다. 데이터 수집 # 커버리지는 다양한 도구를 사용하는 여러 테스트 스위트에서 수집됩니다. 백엔드 커버리지(RSpec) # RSpec 테스트는 spec/simplecov_env.rb 에 구성된 SimpleCov 를 사용하여 커버리지를 수집합니다. 출력 : coverage/lcov/gitlab.lcov (LCOV 형식) 테스트 매핑 : Crystalball 은 소스 파일에서 테스트 파일 매핑을 포함하는 crystalball/packed-mapping.json.gz 를 생성 프론트엔드 커버리지(Jest) # Jest 테스트는 jest.config.base.js 에 구성된 Istanbul 을 사용하여 커버리지를 수집합니다. 출력 : coverage-frontend/*/coverage-final.json (Istanbul JSON 형식) 테스트 매핑 : jest-test-mapping/jest-source-to-test.json Workhorse 커버리지(Go) # Workhorse 테스트는 Go의 내장 커버리지 도구를 사용하여 커버리지를 수집합니다. 출력 : workhorse/coverage.lcov (LCOV 형식으로 변환) 테스트 매핑 : workhorse-source-to-test.json E2E 커버리지 # E2E 테스트는 실행 중인 GitLab 인스턴스에서 커버리지를 수집합니다. 백엔드 E2E(Coverband) # coverband_formatter.rb 는 각 테스트 전후에 GitLab 커버리지 API를 호출하여 백엔드 커버리지를 수집합니다. 출력 : tmp/coverband-coverage-*.json 및 tmp/test-code-paths-mapping-*.json API 엔드포인트 : 커버리지 데이터는 /-/coverband/coverage_data API를 통해 수집됩니다 프론트엔드 E2E(Istanbul) # 프론트엔드 E2E 커버리지는 실행 중인 GitLab 인스턴스의 Istanbul 계측을 통해 수집됩니다. 출력 : coverage-e2e-frontend/coverage-final.json 및 js-coverage-by-example-*.json 데이터 병합 # 테스트가 완료된 후 병렬 작업 및 E2E 테스트의 커버리지가 병합됩니다. 백엔드 병합 # merge_backend_coverage.rb 스크립트가 병합합니다: coverage/lcov/gitlab.lcov 의 RSpec 커버리지 coverage-e2e-backend/coverband-*.json 의 E2E Coverband 커버리지 출력: coverage-backend/coverage.lcov 백엔드 테스트 매핑 병합 # merge_e2e_backend_test_mapping.rb 스크립트가 병합합니다: crystalball/packed-mapping.json.gz 의 Crystalball 매핑( DescribedClassStrategy 및 CoverageStra