세로형
Recent Posts
Recent Comments
Link
04-19 18:17
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

test code coverage(코드 커버리지)란? Python test code coverage 방법 본문

python

test code coverage(코드 커버리지)란? Python test code coverage 방법

이수진의 블로그 2020. 2. 20. 16:30

포스팅 개요

이번 포스팅은 test code coverage에 대해서 알아봅니다.

그냥 코드 커버리지(code coverage)라고도 불리우는 방법입니다.

그리고 파이썬(Python)에서 test code coverage를 하는 방법에 대해서도 함께 알아봅니다. 

test code 작성은 이전 포스팅(https://lsjsj92.tistory.com/572)내용을 기반으로 진행됩니다.

 


 

포스팅 본문

코드 커버리지(code coverage)란 무엇일까요?

code coverage는 소프트웨어 프로그램에서 테스트 케이스가 얼마나 충족되었나? 정도로 생각할 수 있습니다.

즉, 코드에서 테스트가 얼마나 충족이 되었나? 입니다.

흔히, test code를 작성하게 되면 coverage도 같이 측정하게 되는데요. 이때 coverage가 code coverage라고 할 수 있습니다.

 

파이썬(Python)에서 코드 커버리지(code coverage) 확인하기

파이썬에서 test case를 만들었을 때 test code coverage를 쉽게 확인할 수 있도록 도와주는 패키지가 있습니다.

이름도 단순합니다. coverage이죠! 

 

아래 사진과 같이 간단하게 pip install coverage를 통해 설치할 수 있습니다.

 

그럼 실행은 어떻게 하면 될까요?

저는 이전 포스팅(맨 위 링크 참조)에서 Python 환경에서 test case를 작성했습니다. 그 코드를 그대로 사용합니다.

해당 코드가 있는 디렉토리에서 coverage run test_main.py 와 같이 coverage run을 실행하면 됩니다.

 

 

이렇게 실행하였을 때 에러가 뜨지 않으면 잘 동작이 된 것인데요.

근데 저 상태로 두면 아무것도 보이지 않습니다. 그 결과는 아래와 같이 해야 볼 수 있습니다.

Python 환경이 실행된 상태에서 coverage report 를 입력하게 되면

이렇게 report가 나오게됩니다!

저는 지금 main.py에는 coverage가 56%, test_main.py에는 coverage가 47% 정도 code coverage가 되어있네요.

 

그리고 또한, html으로도 뽑아낼 수 있는데요. 

code coverage 결과를 html로 확인할 수 있도록 지원해줍니다.

Python 환경에서 coverage html을 입력합니다.

 

위 사진과 같이 입력하면 아래 사진처럼 하나의 디렉토리가 만들어지는데요.

 

그 디렉토리 안에 들어가면 index.html 파일이 하나 생성되어있습니다.

같이 생성된 .js 파일들은 필요한 javascript 파일입니다.

 

저 index.html을 클릭해서 웹으로 띄어주면

 

위 사진과 같이 coverage report가 나오게 됩니다.

각 파일과 함께 statements, missing, excluded, coverage 값이 보이게 되죠!

그리고 또 다른 html 파일이 하나 더 있는데요.

이름_py.html 형식으로 나온 html 파일입니다

 

위 파일입니다! 저걸 클릭을 하면요

 

 

각 파일 별로 어디 부분이 missing이 되었는지, run이 되었는지 보여줍니다.

저는 하나 파일이 더 있으니 그것도 확인해볼게요

 

마찬가지로 어디 부분이 missing인지, run이 되었는지 확인할 수 있습니다.


결론

test code는 점점 많이 사용하는 추세입니다. 또한, 그에 따라서 code coverage 측정도 해야하죠.

이번 포스팅은 이러한 test code의 coverage 측정하는 방법에 대해 알아보았습니다. 감사합니다.

반응형
그리드형
Comments