Chef.Yeon
Code Cook
Chef.Yeon
전체 방문자
오늘
어제
  • 분류 전체보기 (230)
    • 게임 개발 (1)
      • Unity (1)
    • Android (27)
      • Kotlin (19)
      • 우아한테크코스 5기 (4)
    • Language (11)
      • 파이썬 (3)
      • Java (7)
    • DB (2)
      • SQL (16)
    • Spring (25)
    • 코딩테스트 (56)
    • Git (1)
    • TIL (85)
    • DevOps (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프리코스
  • 백준
  • elasticsearch
  • SQL
  • 에라토스테네스의 체
  • 안드로이드
  • grafana
  • til
  • rsocket
  • 파이썬
  • Android
  • 다이나믹 프로그래밍
  • 우아한테크코스
  • ec2
  • 문자열
  • kibana
  • 코틀린 인 액션
  • java
  • enum
  • kotlin
  • MariaDB
  • 내림차순
  • 코틀린
  • spring
  • 코딩테스트
  • Wil
  • Docker
  • webflux
  • 프로그래머스
  • 레포지토리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Chef.Yeon

Code Cook

[TIL - 20231226] jacoco 패키지, 클래스 Report에서 제외
TIL

[TIL - 20231226] jacoco 패키지, 클래스 Report에서 제외

2023. 12. 26. 17:28

 

💻문제점

jacoco 코드 커버리지 적용했다. 이제 jacoco Report에 추가하지 않을 패키지나 클래스를 제외해보자.


🔍해결

build.gradle

jacocoTestReport {
    reports {
        html.required  = true
        xml.required  = false
        csv.required  = false
    }
    excludedClassFilesForReport(classDirectories)
    dependsOn test
    finalizedBy 'jacocoTestCoverageVerification'
}

jacocoTestCoverageVerification {
    excludedClassFilesForReport(classDirectories)
    violationRules {
        rule {
            element = 'CLASS'
            enabled = true

            limit {
                counter = 'LINE'
                value = 'COVEREDRATIO'
                //minimum = 0.90
            }

            limit {
                counter = 'BRANCH'
                value = 'COVEREDRATIO'
                //minimum = 0.90
            }
        }
    }
}

private excludedClassFilesForReport(classDirectories) {
    classDirectories.setFrom(
            files(classDirectories.files.collect {
                fileTree(dir: it, exclude: [
                        "com/konggogi/veganlife/global/**/*",
                        "com/konggogi/veganlife/**/dto/**",
                        "**/OauthService.class",
                        "**/*domain*/**",
                        "**/*Dto*",
                        "**/*Request*",
                        "**/*Response*",
                        "**/*Interceptor*",
                        "**/*Application*",
                        "**/*Mapper*",
                        "**/*Exception*"
                ])
            })
    )
}

 

global 패키지 하위의 모든 패키지, 클래스,

패키지에 dto, domain이 들어가는 패키지와 하위 클래스,

클래스명에 Request, Response 등이 들어가는 클래스는 모두 제외했다.

 

그리고 Lombok으로 생성된 코드 역시 제외하기 위해 lombok.config를 생성했다. (Root 하위)

lombok.config

lombok.addLombokGeneratedAnnotation = true

 

exclude한 클래스와 패키지 제외하고 jacoco Report가 생성된다.

728x90

'TIL' 카테고리의 다른 글

[TIL - 20240103] Spring Data JPA @Modifying 문제  (0) 2024.01.03
[TIL - 20231228] Interface의 default 메서드를 활용한 Enum 확장  (0) 2023.12.28
[TIL - 20231222] AuthenticationEntryPoint를 사용한 JWT 예외 핸들링  (1) 2023.12.22
[TIL - 20231222] searchWeeklyIntakeCalories 로직 개선  (0) 2023.12.22
[TIL-20231222] Illegal pop() with non-matching JdbcValuesSourceProcessingState  (0) 2023.12.22
    'TIL' 카테고리의 다른 글
    • [TIL - 20240103] Spring Data JPA @Modifying 문제
    • [TIL - 20231228] Interface의 default 메서드를 활용한 Enum 확장
    • [TIL - 20231222] AuthenticationEntryPoint를 사용한 JWT 예외 핸들링
    • [TIL - 20231222] searchWeeklyIntakeCalories 로직 개선
    Chef.Yeon
    Chef.Yeon
    보기 좋고 깔끔한 코드를 요리하기 위해 노력하고 있습니다.

    티스토리툴바