Skip to content

Instantly share code, notes, and snippets.

@joaortk
Created July 29, 2019 11:06
Show Gist options
  • Save joaortk/e404b580861574bcbf81f0c681a80b03 to your computer and use it in GitHub Desktop.
Save joaortk/e404b580861574bcbf81f0c681a80b03 to your computer and use it in GitHub Desktop.
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.8.3-SNAPSHOT"
reportsDir = file("$buildDir/reports")
}
tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
}
android.buildTypes.debug.testCoverageEnabled = true
//Variáveis necessárias
ext.instrumentedTestTaskName = ":app:createDebugAndroidTestCoverageReport" //<- change to your Instrumented Test task
ext.unitTestTaskName = ":app:testDebugUnitTest" //<- change to your Unit Test task
ext.libName = "app"
ext.flavorLib = "" // <- if you use flavors, set the flavor here
task "fullCoverage"(type: JacocoReport, dependsOn: [unitTestTaskName, instrumentedTestTaskName]) {
group = "Reporting"
description = "Generate Jacoco combined coverage reports for Instrumented and Unit Tests"
onlyIf = { true }
reports {
xml.enabled = true
html.enabled = true
}
def libFlavorDir = flavorLib == "" ? "debug" : "${flavorLib}Debug"
def fileFilter = [
'**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/*$ViewBinder*.*',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*App.*',
'**/*Component.*',
'**/*Module.*',
'**/*Test*.*',
'android/**/*.*',
'**/databinding/**/*.*',
'**/android/databinding/*Binding.*',
'**/BR.*',
'**/*Module.*', // Modules for Dagger.
'**/*Dagger*.*', // Dagger auto-generated code.
'**/*MembersInjector*.*', // Dagger auto-generated code.
'**/*_Provide*Factory*.*',
'**/*_Factory.*' //Dagger auto-generated code
]
def libDebugTree = fileTree(dir: "${rootDir}/$libName/build/tmp/kotlin-classes/$libFlavorDir", excludes: fileFilter)
def libMainSrc = "$rootDir/$libName/src/main/java"
sourceDirectories = files([libMainSrc])
classDirectories = files([libDebugTree])
executionData = fileTree(dir: "$rootDir", includes: [
"$libName/build/jacoco/test${flavorLib.capitalize()}DebugUnitTest.exec",
"$libName/build/outputs/code-coverage/connected/*coverage.ec",
"$libName/build/outputs/code_coverage/debugAndroidTest/connected/*coverage.ec",
"$libName/build/spoon-output/debug/coverage/**/*.ec",
])
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment