본론으로 들어가기 앞서, 이 글은 유닛테스트(Unit test)를 작성하는 프로젝트에 참여, 관리하는 분들께만 해당됩니다. 


유닛 테스트를 작성하는 프로젝트에서는 유닛 테스트 코드가 얼마나 잘 작성되고 있는지 수시로 확인하고자 하는 요구 사항이 항상 있기 마련입니다.  

이를 요청이 들어올 때 마다 처리해야 한다고 하면 매우 귀찮은 일이 되겠죠. 


반복되는 단순 작업은 최대한 컴퓨터(기계)에게 맡기는 게 여러가지로 좋기 때문에.. 젠킨스(Jenkins)나 허드슨(Hudson)을 사용 해서 매우 쉽게 소스코드 커버리지(code coverage)를 관리해봅시다. 


여기서는 파이썬(Python)에 대한 방법을 다룰 예정입니다. 

물론, 개발중인 언어별로 설정 방법이나 사용하는 플러그인이 조금씩 다를 수 있습니다. 



플러그인 설치 


Plugin Manager 페이지에서 'Cobertura Plugin' 를 검색해 봅시다. (젠킨스에서는 'Jenkins Cobertura Plugin'으로 찾으셔도 됩니다.)

'Cobertura Plugin'의 체크박스를 체크 하고 설치를 하면 됩니다. 




우분투(리눅스) 프로그램 설치 


coverage라는 툴을 사용해야 하니 설치 해 줍니다. 


$ sudo apt-get install python-coverage



젠킨스 설정


설치가 완료되면 코드 커버리지를 설정할 프로젝트에서 '구성(configure)' 메뉴에 들어가서 '빌드'파트에 'Execute shell'을 선택해서 추가해줍니다. 


아래와 같이 수행할 명령을 작성해 줍니다. 



저의 경우 장고(Django)에서 개발 중이므로 위와 같이 unit test를 수행했습니다. 

각자 필요에 따라 테스트 수행하는 코드만 변경하시면 됩니다. 


이렇게 하면 code coverage 결과물이 생성될겁니다. 

이 결과물을 젠킨스에서 보기 편하게 보여주도록 하는 작업만 추가하시면 됩니다. 


'빌드 후 조치 추가'에서 'Publish Cobertura Coverage Report'를 선택해서 추가해줍니다. 


해줄 작업은 매우 간단합니다. code coverage xml 파일을 지정해주기만 하면 됩니다. 


파일별로 실제 코드 라인별로 커버리지 결과를 보고 싶다면 '빌드 후 조치 추가'에서 'Publish HTML reports'도 선택해 줍시다. 

디렉터리와 HTML 파일명을 지정해 주기만 하면 됩니다. 




결과 조회


위 작업을 문제없이 잘 진행하셨다면 프로젝트(job)를 빌드시켜 봅시다. 

아래와 같은 결과 화면이 보일겁니다. 



코드 커버리지 결과 그래프나 'coverage Report'링크를 클릭하면 세부적인 정보를 확인 할 수 있습니다. 




참고로, 여기서는 실제 소스코드를 보면서 확인 하는건 불가능 합니다. 그건 HTML Report에서 확인이 가능합니다. 


혹시 궁금하신점이 있다면 댓글로 남겨주세요. ^^ 



Posted by KT한
,