Giriş
Plugin için tüm ayarları başka bir dosyaya taşıyabiliriz. Şöyle yaparız
apply from: "${rootDir}/gradle/jacoco.gradle"
Bu dosyada şöyle yaparız
apply plugin: 'jacoco' jacoco { toolVersion = '0.8.7' } jacocoTestReport { reports { xml.enabled false csv.enabled false html.enabled true } }
If the Java plugin is also applied to your project, a new task named jacocoTestReport is created. By default, a HTML report is generated at $buildDir/reports/jacoco/test.
Bu task başka bir şey bağlı değildir. Açıklaması şöyle. Yani test task'ını başlatınca jacoco çalışmaz.
While tests should be executed before generation of the report, the jacocoTestReport task does not depend on the test task.
Jacoco'yu elle başlatmak için şöyle yaparız. Jacoco çıktısını "build/reports/tests/test/index.html" dizininde görebiliriz.
gradlew clean test jacocoTestReport
Eğer test ile jacoco'yu bağlamak istersek şöyle yaparız
test { finalizedBy jacocoTestReport // report is always generated after tests run } jacocoTestReport { dependsOn test // tests are required to run before generating the report }
Plugin Ayarları
1. plugins Block
Şöyle yaparız
plugins { id 'jacoco' }
2. jacoco Block
Kullanılacak sürümü belirtmek için şöyle yaparızjacoco { toolVersion = "0.8.7" }
3. test Block
Şöyle yaparıztest { finalizedBy jacocoTestReport }
4. jacocoTestReport Block
Rapor sonuçlarını hangi formatta istediğimizi belirtiriz.
Örnek
Şöyle yaparız
jacoco {
toolVersion = '0.8.7'
}
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.enabled true
}
}
Örnek
Şöyle yaparız
jacocoTestReport {
reports {
xml.enabled true
}
}
Örnek
Test task'ına bağlamak için şöyle yaparız
plugins {
id "org.sonarqube" version "$sonarQubeVersion"
id "jacoco"
}
jacoco {
toolVersion = "0.8.6"
reportsDir = file("$buildDir/jacocoreports")
}
jacocoTestReport {
reports {
xml.enabled true
}
}
test.finalizedBy jacocoTestReport
Sonar ile birleştirmek için şöyle yaparız
sonarqube {
properties {
property 'sonar.coverage.exclusions', '**/dto/**,**/util/**,**/ResponseExceptionHandler.java,,**/Application.java'
property 'sonar.coverage.jacoco.xmlReportPaths', "$buildDir/jacocoreports/test/jacocoTestReport.xml"
}
}
Örnek
Şöyle yaparız
jacocoTestReport { dependsOn test reports { xml.required = true csv.required = true html.required = true } }
5. jacocoTestCoverageVerification Block
Şöyle yaparız
jacocoTestCoverageVerification {violationRules {rule {limit {minimum = 0.8}}rule {limit {counter = 'BRANCH'value = 'COVEREDRATIO'minimum = 0.8}}}}
Örnek
Kapsama yüzdesini check task'ına bağlamak için şöyle yaparız
check.dependsOn jacocoTestCoverageVerification
Örnek
Şöyle yaparız
plugins {id 'java'id 'jacoco'}dependencies {testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'}test {useJUnitPlatform()finalizedBy jacocoTestReport}jacocoTestReport {dependsOn testreports {html.required = true}}jacocoTestCoverageVerification {violationRules {rule {limit {minimum = 0.8}}}}check.dependsOn jacocoTestCoverageVerification
Hiç yorum yok:
Yorum Gönder