자바 17버전 사용시 Jacoco 버전

가오리·2023년 11월 21일
0

트러블 슈팅

목록 보기
5/16
post-thumbnail

자바 17 버전 사용시 Jacoco 버전 불일치

원인

  • java 버전과 Jacoco 버전 불일치

해결 방법

  • java 17jacoco 0.8.8 사용

build.gradle

tasks.named('test') {
    outputs.dir snippetsDir
    useJUnitPlatform()
    finalizedBy 'jacocoTestReport'
    jacoco {
        destinationFile = file("$buildDir/jacoco/jacoco.exec")
    }
}

jacocoTestReport {
    reports {
        html.enabled true
        xml.enabled false
        csv.enabled true

// 리포트의 저장 경로를 설정합니다.
//        html.destination file("jacoco/jacocoHtml")
//        xml.destination file("jacoco/jacoco.xml")
    }
    def Qdomains = []

    for (qPattern in '**/QA'..'**/QZ') { // qPattern = '**/QA', '**/QB', ... '*.QZ'
        Qdomains.add(qPattern + '*')
    }
    afterEvaluate {
        classDirectories.setFrom(files(classDirectories.files.collect {
            fileTree(dir: it, exclude: [
                    "com/example/surveydocument/SurveydocumentApplication*",
                    "**/config/*"
            ] + Qdomains)
        })
        )
    }

    finalizedBy 'jacocoTestCoverageVerification'
}

jacocoTestCoverageVerification {
    def Qdomains = []

    for (qPattern in '*.QA'..'*.QZ') { // qPattern = '*.QA', '*.QB', ... '*.QZ'
        Qdomains.add(qPattern + '*')
    }

    violationRules { // 커버리지의 범위와 퍼센테이지를 설정합니다.
        rule {
            element = 'CLASS'

            limit {
                counter = 'BRANCH'
                value = 'COVEREDRATIO'
                minimum = 1.00
            }

            excludes = [] + Qdomains // 제외할 Qdomains 패턴 추가
        }
    }
}

jacoco {
    // JaCoCo 버전
    toolVersion = '0.8.8'
}
profile
가오리의 개발 이야기

0개의 댓글