📋

6. 커버리지 계산하기

 
이번 강의에서는 pytest를 이용해 코드 커버리지를 확인해 봅시다. 코드 커버리지는 테스트가 실행될 때 몇 퍼센트의 코드가 실행되는지 통계로 나타내는 자료입니다. 이를 통해서 테스트가 얼마나 잘 코드를 커버하고 있는지 확인할 수 있습니다.
 
코드 커버리지를 게산하기 위해 pytest-cov라는 pytest를 위한 플러그인을 사용해 보겠습니다.
먼저 프로젝트 폴더를 열고 새로운 터미널을 실행해 주세요.
source crawler-venv/bin/activate (Windows는 crawler-venv\Scripts\activate.bat)를 입력해 가상 환경을 활성화해줍니다.
그리고 pytest-cov를 pip으로 설치합니다.
pip install pytest-cov
이제 pytest-cov를 실행해 봅시다.
pytest --cov=crawler pytest 명령에 --cov=crawler 옵션으로 커버리지를 측정할 폴더를 지정해 줍니다.
이제 커버리지 결과가 출력되는 것을 알 수 있습니다. 커버리지가 낮게 측정되는 이유는 테스트를 작성하지 않은 main.py 와 리팩토링 하지 않은 코드 때문입니다.
이제 GitHub Actions에도 코드 커버리지를 추가해 봅시다.
.github/workflow/test.yml 을 열어 Install dependencies 부분에 pip install pytest-cov 를 추가해 줍니다.
그리고 pytest 실행 이후 Run coverage report 를 추가해 줍니다.
- name: Run coverage report run: | pytest --cov=crawler
이제 커버리지 정보를 확인할 수 있습니다.
이를 통해 테스트가 얼마나 코드를 잘 커버하는지 확인할 수 있습니다.
또한 HTML 리포트를 생성해 더 자세한 정보를 확인할 수 있습니다.
pytest --cov-report html:cov_html --cov=crawler 명령을 실행하면 cov_html 폴더로 리포트를 생성하게 됩니다. 생성된 폴더 내 index.html 을 파일 탐색기에서 찾아 실행한다면 브라우저에서 리포트를 확인할 수 있습니다. 파일명을 클릭하면 테스트가 진행된 부분cl을 자세히 확인 할 수 있어 편리하게 테스트 여부를 찾아볼 수 있습니다.