Created
January 16, 2024 06:46
-
-
Save sud007/fb0e8123e25e971e12044263eb9b3ad7 to your computer and use it in GitHub Desktop.
Sample Jacoco Gradle : 2022
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apply plugin: 'jacoco' | |
ext { | |
coverageExclusions = [ | |
'**/src/main/res/**', | |
'**/R.class', | |
'**/*Activity*', | |
'**/*response*', | |
'**/*request*', | |
'**/*Util*', | |
'**/*Adapter*', | |
'**/*Fragment*', | |
'**/*StringFactory*', | |
'**/*ImageFactory*', | |
'**/R$*.class', | |
'**/*$InjectAdapter.*', | |
'**/*$ModuleAdapter.*', | |
'**/Dao*.*', | |
'**/*$ViewInjector*.*', | |
'**/*$ViewBinder*.*', | |
'**/*MembersInjector*.*', | |
'**/BuildConfig.*', | |
'**/Manifest*.*', | |
'**/*Companion*.*', | |
'**/*$Lambda$*.', | |
'**/*Factory*.', | |
'**/*$Builder*', | |
'**/*$Parcelable*.*', | |
'**/*Test*.*', | |
"**/android/databinding/**", | |
"**/androidx/databinding/*", | |
'**/com/myApp/android/generated/callback/*', | |
'**/widgets/*', | |
'**/me/**/*.*', | |
'**/org/**/*.*', | |
'**/org/**/*.*', | |
'**/*$Result.*', /* filtering `sealed` and `data` classes */ | |
'**/*$Result$*.*',/* filtering `sealed` and `data` classes */ | |
'**/KtorClientProvider*', | |
'**/commonMain/**/sqldelight/**', | |
'**/commonMain/**/api/**', | |
'**/*StringFactory*', | |
'**/*ImageFactory*', | |
'**/KtorClientProvider*', | |
'**/commonMain/**/request/**', | |
'**/commonMain/**/response/**', | |
'**/commonMain/**/model/**', | |
'**/commonMain/**/di/**', | |
'**/commonMain/**/MR/**', | |
'**/commonMain/**/factory/**', | |
'**/commonMain/**/helper/**', | |
'**/commonMain/**/arch/**', | |
'**/commonMain/**/repository/**', | |
'**/commonMain/**/models/**', | |
'**/commonMain/**/sqldelight/**', | |
'**/commonMain/**/validation/**', | |
'**/commonMain/**/impl/**', | |
'**/commonMain/**/command/**', | |
'**/*Repository', | |
'**/*Dto', | |
'**/*Api', | |
'**/*Impl', | |
'**/*ResponseModel', | |
'**/*DetailsModel', | |
'**/*DetailModel', | |
'**/*AnalyticsEvents*', | |
'**/*Logger*', | |
'**/*SettingsStore*', | |
'**/*Koin*', | |
'**/*SingleEvent*', | |
'**/*ApiConstants*', | |
'**/*CustomHttpLogger*', | |
'**/*ErrorCodes*', | |
'**/*FailureHandler*', | |
'**/*NetworkHelper*', | |
] | |
} | |
jacoco { | |
toolVersion "0.8.8" | |
reportsDirectory = layout.buildDirectory.dir('reports') | |
} | |
tasks.withType(Test) { | |
jacoco.includeNoLocationClasses = true | |
jacoco.excludes = ['jdk.internal.*'] | |
// see related issue https://github.com/gradle/gradle/issues/5184#issuecomment-457865951 | |
} | |
tasks.withType(Test) { | |
finalizedBy jacocoTestReport // report is always generated after tests run | |
} | |
task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) { | |
group = "Reporting" | |
description = "Generate Jacoco coverage reports" | |
reports { | |
xml.required.set(true) | |
html.required.set(true) | |
} | |
def javaTree = fileTree(dir: "${buildDir}/intermediates/javac/debug/classes", excludes: coverageExclusions) | |
def mainSrc = "/src/commonMain/kotlin" | |
def kotlinTree = fileTree(dir: "${buildDir}/tmp/kotlin-classes/debug", excludes: coverageExclusions) | |
additionalSourceDirs.from = files(mainSrc) | |
sourceDirectories.from = files([mainSrc]) | |
classDirectories.from = files([kotlinTree,javaTree]) | |
executionData.from = files("$buildDir/jacoco/testDebugUnitTest.exec") | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Added