[Rust] tarpaulin: 코드 커버리지
코드 커버리지 도구다.
현재는 Linux에서만 지원된다.
문서화 상태가 그리 좋진 않은 것 같다.
설치하기
간단하다. cargo를 사용해서 설치하면 그만이다.
cargo install cargo-tarpaulin


사용법
이런 프로젝트 구성이 있다면

그 루트 경로에서 커맨드를 실행시켜주면 된다.
그럼 기본적으로 라인 커버리지 대상과 현재 처리 현황을 알려준다.
20%는 됐다고 하는데 뭘 기준으로 됐다고 하는건지 모르겠다...? 나는 한게 없는데?
아무튼 함수 단위로도 커버리지 체크를 할 수 있다.
곱셈 함수인 mul을 추가해서 다시 돌려봤다.

커버리지 케이스가 늘어났다.
케이스를 처리하려면, 기존 방식대로 단위테스트를 추가해주면 된다.

하나 더 처리된 것을 볼 수 있다.
커버리지 시각화: HTML
근데 터미널로만 보면 커버리지 비율이 어떻게 되고, 어떤 소스 라인이 테스트가 누락되었는지 확인하기가 심히 어렵다.
tarpaulin은 다행히 이를 위해 몇가지 출력 타입을 제공한다.
개중에 가장 사용하기 편리한건 아무래도 Html이다.
out 옵션을 주고 돌리면

이런 레포트 파일이 만들어지는데

그냥 열어보면 바로 볼 수 있다.
총 커버리지 평균도 있고, 폴더별, 파일별 커버리지 비율도 세세하게 나온다.
파일로 들어가면 테스트가 된 부분과 되지 않은 부분도 한눈에 볼 수 있다.
참조
https://blog.rng0.io/how-to-do-code-coverage-in-rust
https://github.com/xd009642/tarpaulin