-
자바 코드에서 테스트 커버리지 제외하기Java 2021. 9. 5. 12:42
테스트 코드를 작성하다보면 테스트 커버리지를 제외하고 싶은 순간이 있을 수 있습니다. 대표적으로 롬복 어노테이션을 쓰는 경우(@Getter), equals와 hashCode 메서드, 스프링 어플리케이션을 실행하는 App 클래스 등이 있습니다.
이런 코드들은 딱히 테스트 코드를 작성할 때의 이점이 딱히 없기 때문에, 제가 교육을 들으며 적용한 테스트 커버리지에서 제외시키는 간단한 방법들에 대해 알아보겠습니다.
자바의 코드 커버리지를 측정하는 도구인 Jacoco, 빌드 도구는 gradle을 기준으로 설명하겠습니다.
@Generated
사용법은 간단합니다. 메서드나 클래스 위에 어노테이션을 추가해주기만 하면 됩니다.
다음은 어노테이션을 추가하기 전 App 클래스 입니다.
이 어노테이션은 다음과 같이 정의되어 있습니다.
@Documented @Retention(RUNTIME) @Target({TYPE, METHOD}) public @interface Generated { }
여기서 이 어노테이션을 추가하고, 빌드 후 테스트를 다시 실행하였습니다.
클래스에 추가하니 커버리지에서 아예 제외된 모습을 볼 수 있습니다.
롬복이 추가한 메서드 제외하기
롬복이 생성한 메서드 등을 제외하는 방법입니다. 대표적으로 Getter 메서드 등을 제외할 때 자주 쓰입니다.
프로젝트 루트 경로에 lombok.config 파일을 생성하고, 다음과 같이 작성해줍니다.
lombok.addLombokGeneratedAnnotation = true
그리고 나서 서버를 재시작 후, 다시 커버리지를 보면 롬복 관련 코드는 제외된 것을 확인할 수 있습니다.그 외 - gradle에서 파일 지정하기
gradle에서 파일을 지정하여 설정할 수 있고, 와일드카드 형식(*)도 지원합니다.
참고 링크
'Java' 카테고리의 다른 글
자바의 다양한 연산자들 (0) 2021.03.14 자바의 프리미티브 타입, 변수 그리고 배열 (0) 2021.03.11 JVM의 Garbage Collector 작동 방식 (0) 2021.03.07 JVM이란 무엇이며 자바 코드는 어떻게 동작하는가 (0) 2021.02.27