ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ์ธก์ ๋๊ตฌ
plugins {
id 'jacoco'
}
test {
jacoco {
destinationFile = file("$buildDir/jacoco/jacoco.exec")
}
finalizedBy 'jacocoTestReport'
}
jacoco {
toolVersion = '0.8.5'
}
jacocoTestReport {
reports {
html.enabled true
xml.enabled true // sonarqube์ ์ฐ๋์ ํ์
csv.enabled false
}
finalizedBy 'jacocoTestCoverageVerification'
}
jacocoTestCoverageVerification {
violationRules {
rule {
enabled = true // rule์ ๋ํ ์กฐ๊ฑด ์ฌ์ฉ ์ฌ๋ถ
element = "CLASS"
limit {
counter = "BRANCH" // ๋ธ๋์น ์ปค๋ฒ๋ฆฌ์ง
value = "COVEREDRATIO"
minimum = 0.70
}
limit {
counter = 'LINE' // ๋ผ์ธ ์ปค๋ฒ๋ฆฌ์ง
value = 'COVEREDRATIO'
minimum = 0.70
}
limit {
counter = 'LINE' // ๋น ์ค์ ์ ์ธํ ์ฝ๋์ ๋ผ์ธ์๋ฅผ ์ต๋ 200๋ผ์ธ์ผ๋ก ์ ํ
value = 'TOTALCOUNT'
maximum = 200
}
excludes = [ // ๋ถ์์์ ์ ์ธํ ํ์ผ ํจํด
// '*.test.*',
]
}
}
}
task testCoverage(type: Test) {
group 'verification'
description 'Runs the unit tests with coverage'
dependsOn(':test',
':jacocoTestReport',
':jacocoTestCoverageVerification')
tasks['jacocoTestReport'].mustRunAfter(tasks['test'])
tasks['jacocoTestCoverageVerification'].mustRunAfter(tasks['jacocoTestReport'])
}./gradlew testCoverage
https://blog.leocat.kr/notes/2020/02/02/jacoco-config-jacoco-for-kotlin-and-java-project