Chromium Chronicle #18: Chromium 코드 적용 범위

에피소드 18: 캘리포니아주 마운틴뷰에서 비니타 조시, 프라카르 아스타나 제공 (2021년 2월)
이전 에피소드

특정 테스트 모음이 실행될 때 테스트 커버리지는 소스 코드가 얼마나 많이 실행되는지 측정합니다. 커버리지 데이터 생성에는 계측을 사용한 컴파일, 계측 테스트 실행에서 데이터 수집, 데이터 후처리의 세 가지 주요 단계가 있습니다. 적용 범위팀에는 이 과정을 자동화할 수 있는 도구가 있습니다.

커버리지 스크립트Gerrit UI가 업데이트될 때까지 기다리지 않고도 단 하나의 명령어로 코드 적용 범위 보고서를 생성할 수 있습니다. 이 스크립트는 현재 Linux, Mac, iOS, ChromeOS에서 지원됩니다.

사용 예는 다음과 같습니다.

$ gn gen out/coverage \
    --args='use_clang_coverage=true is_component_build=false'
$ python tools/code_coverage/coverage.py \
    crypto_unittests url_unittests \
    -b out/coverage -o out/report \
    -c 'out/coverage/crypto_unittests' \
    -c 'out/coverage/url_unittests --gtest_filter=URLParser.PathURL' \
    -f url/ -f crypto/

이렇게 하면 crypto_unittestsurl_unittests targets가 빌드되고 실행됩니다. url_unittests의 경우 테스트 URLParser.PathURL만 실행합니다. 적용 범위 보고서는 url/crypto/의 파일과 하위 디렉터리만 포함하도록 필터링됩니다. 프로세스 자동화 외에도 이 스크립트는 디렉터리 및 구성요소별로 코드 적용 범위를 볼 수 있는 추가 기능을 제공합니다.

적용 범위 스크립트의 출력 스크린샷 디렉터리 뷰
적용 범위 스크립트의 출력 스크린샷 구성요소 뷰

코드 적용 범위 도구는 Windows, iOS, Android, Linux, ChromeOS에서 전체 코드베이스의 디렉터리 및 구성요소별로 코드 적용 범위 분석을 제공합니다.

의견 공유: code-coverage @ chromium.org에 문의하거나 crbug.com에서 버그를 신고합니다.

자료