본문 바로가기
Tech/DevOps

[IntelliJ] 테스트 커버리지(Test coverage), 테스트 코드 측정하기

by 싱브이 2024. 3. 26.
728x90
반응형

스프링 프로젝트를 개인적으로 하고 있는데 테스트코드를 잘 짜고 있는지 궁금해서 찾아보니 테스트 커버리지라는게 있더라 !

궁금해서 바로 찾아서 도입해보았다. 

나는 IDE로 IntelliJ를 사용하는데, 플러그인 설치도 없이 코드 커버리지를 측정해준다고..? 인텔리제이 넌 정말..

이걸 이용하면 최대한 모든 로직을 테스트할 수 있기도 하고, 시간을 더 아낄 수도 있다는 생각에 글을 작성한다!

 

 


코드 커버리지란?

프로젝트의 소스 코드가 테스트 코드에서 실행된 정도를 나타내는 측정 지표로 백분율(%)로 표현된다. 이를 통해 소스 코드의 어느 부분이 실행되었는지를 확인하여, 작성하지 못한 테스트 코드를 확인하여 더 꼼꼼하게 테스트를 작성할 수 있다.

 

 

1. 라인 커버리지 (Line Coverage): 테스트를 통해 실행된 소스 코드의 라인 수를 측정. 이는 각 라인이 테스트에 의해 실행되었는지 여부를 확인

2. 브랜치 커버리지 (Branch Coverage): 제어 흐름의 각 브랜치(조건문, 분기 등)가 테스트에 의해 실행되었는지 여부를 측정. 이를 통해 프로그램의 모든 분기가 테스트되었는지 확인

3. 조건 커버리지 (Condition Coverage): 각 조건ㅊ의 모든 조건이 테스트에 의해 충족되었는지 여부를 측정. 이를 통해 모든 조건문이 가능한 조건에 대해 테스트되었는지 확인

 

 


커버리지 측정 방법(IntelliJ)

 

 

test 패키지나, test>java 를 우클릭 한 뒤 More Run/Debug 그리고 Run 'Tests in '...' with Coverage를 클릭한다.

 

 

그러면 요렇게 폴더마다 코드를 분석하여 백분율로 커버리지를 출력해준다.

 

 


(Option) 더 정확하게 커버리지 확인하기

 

인텔리제이는 브랜치 커버리지 측정까지 지원한다.

 

 

 

test 패키지나, test>java 를 우클릭 한 뒤 More Run/Debug 그리고 Modify Run Configuration를 클릭한다.

 

 

Modify options를 클릭한다.

 

 

Code Coverage 탭에 있는 Enable branch coverage and test tracking을 선택한다.

 

 

그럼 이렇게 Branch Coverage에 대해 결과를 얻을 수 있다. 

 

 

100%로 측정되지 않은 클래스에 접근하여 좌측 코드라인을 살펴보면 녹색과 갈색이 표시되는 것을 확인할 수 있다.

테스트되지 않은 부분 갈색, 테스트되는 부분 녹색으로 표시된다.

 

 

 

녹색을 클릭해보면 위와 같이 알 수 있다. 이런걸 확인하면서 테스트코드를 작성하면 더 정확하게 테스트를 진행할 수 있다 !

 

 

 

 

 

 

728x90
반응형

댓글