[python] pytest-cov를 사용한 코드 커버리지 측정과 리포팅

소프트웨어 프로젝트를 진행할 때, 코드가 얼마나 테스트되었고 어느 정도의 코드가 테스트되지 않았는지를 파악하는 것은 매우 중요합니다. 이를 위해 코드 커버리지 (code coverage) 도구를 사용하여 테스트가 얼마나 코드를 실제로 실행하는지를 측정할 수 있습니다.

pytest-cov가 무엇인가요?

pytest-cov는 Python 테스트 프레임워크인 pytest와 호환되는 확장 모듈로, 코드 커버리지 측정을 지원합니다. 이를 통해 테스트를 실행하면 코드 중 어느 부분이 실행되었고 어느 부분이 실행되지 않았는지를 확인할 수 있습니다.

pytest-cov를 설치하고 사용해보기

먼저 pytest-cov를 설치합니다. 다음과 같이 명령어를 실행하여 설치할 수 있습니다.

pip install pytest-cov

이제 pytest를 이용하여 코드 커버리지를 측정하려면, 명령어 뒤에 --cov 플래그를 사용하면 됩니다.

pytest --cov=프로젝트_디렉토리_경로

이렇게 하면 테스트가 실행되고 코드 커버리지를 확인할 수 있습니다.

리포팅

코드 커버리지를 측정했다면, 결과를 리포팅하여 확인하는 것이 좋습니다. pytest-cov는 여러 가지 리포팅 형식을 지원합니다. 예를 들어, 다음 명령어를 실행하여 텍스트 리포팅을 생성할 수 있습니다.

pytest --cov=프로젝트_디렉토리_경로 --cov-report=term

이제 터미널에서 텍스트 형식의 코드 커버리지 리포팅을 확인할 수 있습니다.

결론

pytest-cov를 사용하면 테스트 스위트 실행 중 코드 커버리지를 측정하고 리포팅하는 것이 매우 간단해집니다. 이를 통해 코드의 어느 부분이 테스트되지 않았는지를 파악하고 이에 대한 대응을 할 수 있습니다.

마지막으로, 코드 커버리지는 단순히 테스트가 얼마나 많은 부분을 실행했는지를 나타내는 것이 아니라, 실제로 얼마나 코드를 커버했는지를 보여줍니다. 그러므로 코드 품질 향상을 위해 꼭 활용해야 하는 도구 중 하나입니다.

참고: