위키득계정 ↗
기술

Coverlet

Coverlet기술
분야
코드 커버리지
대상 프로젝트
SDK 형식 닷넷 프로젝트
측정 단위
줄과 분기 및 메서드
용도
실행되지 않은 영역 파악
Coverlet은 닷넷 테스트가 실행한 코드의 범위를 기록하는 커버리지 도구다. 줄과 분기, 메서드의 실행 여부를 수집하며 테스트 실행 방식에 맞는 연동 구성으로 사용한다.

실행 경로를 기록하는 이유

테스트가 모두 통과해도 검사하지 않은 코드가 남아 있을 수 있다. Coverlet은 실행된 지점을 기록하고 결과 파일로 정리해 이러한 공백을 찾도록 돕는다. 줄이 실행되었다는 사실과 그 줄의 동작을 충분히 검증했다는 사실은 서로 다르다. 높은 비율만으로 검사의 품질을 판단하지 않는다.

수집이 이루어지는 과정

대상 어셈블리와 기호 정보를 바탕으로 실행 지점을 기록할 코드를 삽입한다. 테스트 뒤 기록을 읽어 커버리지 결과를 만들고 원래 어셈블리를 복원한다. 포함하거나 제외할 범위를 명확히 정해야 보고서의 분모가 무엇인지 알 수 있다. 결과 형식은 선택한 연동 방식에 맞춰 사용한다.

실행기와 연동 선택

VSTest 계열의 수집기와 MSBuild 연동을 Microsoft Testing Platform용 확장과 구분해야 한다. 실행기가 다른데 기존 옵션만 옮기면 같은 방식으로 동작한다고 기대할 수 없다. 저장소 문서에는 미출시 기능이 포함될 수 있으므로 실제 설치한 버전의 지원 범위를 확인한다. 테스트 대상의 재빌드 여부처럼 수집 조건도 결과 생성에 영향을 준다.

관련 문서

Pytest-cov / NUnit / MSTest / TUnit