[Python]테스트코드 커버리지 측정 - coverage

2021. 9. 27. 20:02·SW개발/Python

파이썬에서 작성한 테스트 코드의 커버리지를 측정하는 도구가 있다.

https://github.com/nedbat/coveragepy

 

GitHub - nedbat/coveragepy: Code coverage measurement for Python

Code coverage measurement for Python. Contribute to nedbat/coveragepy development by creating an account on GitHub.

github.com

 

Coverage 설치

pip install coverage

먼저 측정을 위해 coverage라는 도구를 설치한다.

 

.coveragerc 설정파일 추가

[run]
include = /커버리지를 측정할 디렉토리명/*
omit = *migrations*, *tests*

프로젝트의 루트 디렉토리에 위와 같은 설정파일을 추가하여 준다.

[run] 옵션 안에 커버리지를 측정할 경로와, 제외할 파일명을 입력할 수 있다.

 

Coverage 측정 & 보기

coverage python manage.py test

위의 명령어를 통해 테스트를 한번 실행시키면 측정된 커버리지를 확인할 수 있다.

 

$ coverage report

Name                      Stmts   Miss  Cover   Missing
-------------------------------------------------------
my_program.py                20      4    80%   33-35, 39
my_other_module.py           56      6    89%   17-23
-------------------------------------------------------
TOTAL                        76     10    87%

report 명령어를 이용하면 콘솔창에서 결과를 확인할 수 있다.

 

$ coverage html

html 명령어를 입력하면 htmlcov/index.html 이라는 파일이 생성되며 여기서 더 자세한 내용들을 확인할 수 있다.

 

index.html
라인별 커버리지

 

테스트 케이스를 어느정도 작성하였다면 커버리지 측정을 통해 놓치고 있는 부분이 어디인지 확인해보는 것이 좋다.

 

728x90

'SW개발 > Python' 카테고리의 다른 글

[Python]The Zen of Python - 파이써닉한 코드  (0) 2021.11.29
[Python]TODO 주석 활용법 (feat. 주석 키워드)  (0) 2021.11.24
[Python]예외처리 - try, except, else, finally (raise) 사용하기  (1) 2021.08.19
[Python]isinstance() 란?  (0) 2021.08.12
[Python]hasattr(), getattr(), setattr() 함수란?  (0) 2021.07.30
'SW개발/Python' 카테고리의 다른 글
  • [Python]The Zen of Python - 파이써닉한 코드
  • [Python]TODO 주석 활용법 (feat. 주석 키워드)
  • [Python]예외처리 - try, except, else, finally (raise) 사용하기
  • [Python]isinstance() 란?
Leffe_pt
Leffe_pt
개발자로서 성장하면서 배워온 지식과 경험을 공유하는 공간입니다.
  • Leffe_pt
    Leffe's tistory
    Leffe_pt
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • SW개발 (303)
        • 코딩테스트 (172)
        • 개발이야기 (23)
        • IT 용어 (17)
        • Python (22)
        • Django (46)
        • Flask (2)
        • Database (1)
        • SQLAlchemy (0)
        • Javascript (5)
        • Linux, Unix (3)
        • JAVA (2)
        • Spring (10)
      • 회고 (4)
      • 사진 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    플레이스토어
    g
    라이프 스타일
    배달비 공유
    Contributor
    배공파용
    컨트리뷰터
    배달
    django
    오픈소스
    트리 #AVL #알고리즘 #자료구조
    음식
    어플리케이션
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Leffe_pt
[Python]테스트코드 커버리지 측정 - coverage
상단으로

티스토리툴바