mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 04:13:53 +01:00
Update file filters (#4640)
This commit is contained in:
parent
18b3e50c15
commit
457b03b7cb
1 changed files with 88 additions and 44 deletions
132
jacoco.gradle
132
jacoco.gradle
|
|
@ -4,58 +4,102 @@ jacoco {
|
|||
toolVersion = "0.8.7"
|
||||
}
|
||||
|
||||
android {
|
||||
testOptions {
|
||||
unitTests.all {
|
||||
jacoco {
|
||||
includeNoLocationClasses = true
|
||||
}
|
||||
}
|
||||
}
|
||||
tasks.withType(Test) {
|
||||
jacoco.includeNoLocationClasses = true
|
||||
jacoco.excludes = ['jdk.internal.*']
|
||||
// see related issue https://github.com/gradle/gradle/issues/5184#issuecomment-457865951
|
||||
}
|
||||
|
||||
project.afterEvaluate {
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
def name = variant.name
|
||||
def testTaskName = "test${name.capitalize()}UnitTest"
|
||||
(android.hasProperty('applicationVariants')
|
||||
? android.'applicationVariants'
|
||||
: android.'libraryVariants')
|
||||
.all { variant ->
|
||||
def variantName = variant.name
|
||||
def unitTestTask = "test${variantName.capitalize()}UnitTest"
|
||||
|
||||
tasks.create(name: "${testTaskName}Coverage", type: JacocoReport, dependsOn: "$testTaskName") {
|
||||
group = "Reporting"
|
||||
description = "Generate Jacoco coverage reports for the ${name.capitalize()} build."
|
||||
tasks.create(name: "${unitTestTask}Coverage", type: JacocoReport, dependsOn: [
|
||||
"$unitTestTask"
|
||||
]) {
|
||||
group = "Reporting"
|
||||
description = "Generate Jacoco coverage reports for the ${variantName.capitalize()} build"
|
||||
|
||||
def fileFilter = ['**/R.class',
|
||||
'**/R$*.class',
|
||||
'**/*$ViewInjector*.*',
|
||||
'**/*$ViewBinder*.*',
|
||||
'**/BuildConfig.*',
|
||||
'**/Manifest*.*',
|
||||
'**/*Test*.*',
|
||||
'android/**/*.*']
|
||||
reports {
|
||||
html.enabled = true
|
||||
xml.enabled = true
|
||||
}
|
||||
|
||||
//java compiled classes
|
||||
def javaTree = fileTree(
|
||||
dir: "${buildDir}/intermediates/classes/${name}",
|
||||
excludes: fileFilter
|
||||
)
|
||||
//kotlin compiled classes
|
||||
def kotlinTree = fileTree(
|
||||
dir: "${buildDir}/tmp/kotlin-classes/${name}",
|
||||
excludes: fileFilter
|
||||
)
|
||||
def mainSrc = "${project.projectDir}/src/main/java"
|
||||
def excludes = [
|
||||
// data binding
|
||||
'android/databinding/**/*.class',
|
||||
'**/android/databinding/*Binding.class',
|
||||
'**/android/databinding/*',
|
||||
'**/androidx/databinding/*',
|
||||
'**/BR.*',
|
||||
// android
|
||||
'**/R.class',
|
||||
'**/R$*.class',
|
||||
'**/BuildConfig.*',
|
||||
'**/Manifest*.*',
|
||||
'**/*Test*.*',
|
||||
'android/**/*.*',
|
||||
// butterKnife
|
||||
'**/*$ViewInjector*.*',
|
||||
'**/*$ViewBinder*.*',
|
||||
'**/*ViewBinding*.*',
|
||||
// dagger
|
||||
'**/*_MembersInjector.class',
|
||||
'**/Dagger*Component.class',
|
||||
'**/Dagger*Component$Builder.class',
|
||||
'**/*Module_*Factory.class',
|
||||
'**/di/module/*',
|
||||
'**/*_Factory*.*',
|
||||
'**/*Module*.*',
|
||||
'**/*Dagger*.*',
|
||||
'**/*Hilt*.*',
|
||||
// kotlin
|
||||
'**/*MapperImpl*.*',
|
||||
'**/*$ViewInjector*.*',
|
||||
'**/*$ViewBinder*.*',
|
||||
'**/BuildConfig.*',
|
||||
'**/*Component*.*',
|
||||
'**/*BR*.*',
|
||||
'**/Manifest*.*',
|
||||
'**/*$Lambda$*.*',
|
||||
'**/*Companion*.*',
|
||||
'**/*Module*.*',
|
||||
'**/*Dagger*.*',
|
||||
'**/*Hilt*.*',
|
||||
'**/*MembersInjector*.*',
|
||||
'**/*_MembersInjector.class',
|
||||
'**/*_Factory*.*',
|
||||
'**/*_Provide*Factory*.*',
|
||||
'**/*Extensions*.*',
|
||||
// sealed and data classes
|
||||
'**/*$Result.*',
|
||||
'**/*$Result$*.*'
|
||||
]
|
||||
|
||||
sourceDirectories.setFrom(files([mainSrc]))
|
||||
classDirectories.setFrom(files([javaTree, kotlinTree]))
|
||||
executionData.setFrom(fileTree(dir: "${buildDir}", includes: [
|
||||
"jacoco/${testTaskName}.exec",
|
||||
"outputs/code-coverage/connected/*coverage.ec"
|
||||
]))
|
||||
def javaClasses = fileTree(dir: variant.javaCompileProvider.get().destinationDir,
|
||||
excludes: excludes)
|
||||
def kotlinClasses = fileTree(dir: "${buildDir}/tmp/kotlin-classes/${variantName}",
|
||||
excludes: excludes)
|
||||
|
||||
classDirectories.setFrom(files([
|
||||
javaClasses,
|
||||
kotlinClasses
|
||||
]))
|
||||
|
||||
def variantSourceSets = variant.sourceSets.java.srcDirs.collect { it.path }.flatten()
|
||||
sourceDirectories.setFrom(project.files(variantSourceSets))
|
||||
|
||||
executionData(files([
|
||||
"$project.buildDir/jacoco/${unitTestTask}.exec"
|
||||
]))
|
||||
}
|
||||
|
||||
reports {
|
||||
xml.enabled = true
|
||||
html.enabled = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue