Skip to content

Code Coverage

SR edited this page Nov 28, 2021 · 13 revisions

Code Coverage

Jacoco 라이브러리를 추가하여 개발 시 html report를 통해 미비한 테스트 코드를 보충

느낀점

  • 코드 커버리지 도구를 사용함으로써 리포트로 현재 코드에 대한 분석도 가능하지만, 테스트 코드를 작성하면서 레이어드 아키텍처의 레이어별 관심사에 대해 생각을 하게 되었다.

참고

Jacoco 란?

  • Java 코드의 커버리지를 체크하는 라이브러리
  • 테스트 코드를 통해 커버리지의 결과를 확인 후, 여러 리포트의 형태를 생성할 수 있다.

구성하는 방법

  • build.gradle에 라이브러리 추가
  • test.gradle를 생성하여 구체적인 분석 방법을 설정
  • 실행 방법에 대한 커스텀

추가적인 확장방법

  • xml 리포트로 sonarqube와 연동하여 기능에 대한 확장이 가능하다.

Jacoco 코드 커버리지 Lombok 코드 제외 방법

    // lombok에서 생성된 메서드를 무시할 수 있도록 설정하는 어노테이션
    @Generated
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Comment)) return false;
        Comment comment = (Comment) o;
        return Objects.equals(id, comment.id);
    }

SonarQube

jacoco & sonarcloud 연동 시 xml 리포트 가지고 분석

xml.enabled ture 설정 필수

  • sonarcloud 연동
plugins {
  id "org.sonarqube" version "3.3"
}

sonarqube {
    properties {
        property "sonar.projectKey", {project_key}
        property "sonar.organization", {organization_key}
        property "sonar.host.url", "https://sonarcloud.io"
    }
}

SonarCloud 적용 DashBoard