From 769b3f13b64f923b6087eb7d95d5f063d87d94fc Mon Sep 17 00:00:00 2001 From: Sai Venkat Desu Date: Tue, 28 May 2024 10:15:52 +0530 Subject: [PATCH] fix: added jacocoTestReport Task after removing oss-gradle-plugin --- auth0/build.gradle | 1 + build.gradle | 1 + gradle/jacoco.gradle | 54 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 gradle/jacoco.gradle diff --git a/auth0/build.gradle b/auth0/build.gradle index db3385c1..6b1f8c02 100644 --- a/auth0/build.gradle +++ b/auth0/build.gradle @@ -107,4 +107,5 @@ dependencies { testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion" } +apply from: rootProject.file('gradle/jacoco.gradle') apply from: rootProject.file('gradle/maven-publish.gradle') \ No newline at end of file diff --git a/build.gradle b/build.gradle index 5af43b72..d432f1c9 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:4.2.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "org.jacoco:org.jacoco.core:0.8.5" } } diff --git a/gradle/jacoco.gradle b/gradle/jacoco.gradle new file mode 100644 index 00000000..ba5d0e67 --- /dev/null +++ b/gradle/jacoco.gradle @@ -0,0 +1,54 @@ +apply plugin: 'jacoco' + +jacoco { + toolVersion = "0.8.5" +} + +android { + testOptions { + unitTests.all { + jacoco { + includeNoLocationClasses = true + } + } + } +} + +afterEvaluate { + def jacocoTestReportTask = tasks.findByName("jacocoTestReport") + if (!jacocoTestReportTask) { + jacocoTestReportTask = tasks.create("jacocoTestReport") + jacocoTestReportTask.group = "Reporting" + jacocoTestReportTask.description = "Generate Jacoco coverage reports for all builds." + } + + android.libraryVariants.all { variant -> + def name = variant.name + def testTaskName = "test${name.capitalize()}UnitTest" + + def reportTask = tasks.create(name: "jacocoTest${name.capitalize()}UnitTestReport", type: JacocoReport, dependsOn: testTaskName) { + group = "Reporting" + description = "Generate Jacoco coverage reports for the ${name.capitalize()} build." + + classDirectories.from = fileTree( + dir: "${buildDir}/intermediates/javac/${name}", + excludes: ['**/R.class', + '**/R$*.class', + '**/*$ViewInjector*.*', + '**/*$ViewBinder*.*', + '**/BuildConfig.*', + '**/Manifest*.*'] + ) + + sourceDirectories.from = ['src/main/java'].plus(android.sourceSets[name].java.srcDirs) + executionData.from = "${buildDir}/jacoco/${testTaskName}.exec" + + reports { + xml.enabled = true + html.enabled = true + } + } + jacocoTestReportTask.dependsOn reportTask + } +} +