세로형
Recent Posts
Recent Comments
Link
11-08 00:00
«   2024/11   »
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
반응형
728x170

포스팅 개요

이번 포스팅은 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