经过多次测试,参考国内外诸多资料。现整理配置如下。
环境:
classpath “com.android.tools.build:gradle:7.0.2”
ext.kotlin_version = ‘1.6.0’
//jacoco.gradle
import org.gradle.api.internal.project.ProjectInternal
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.8.7"
}
android {
buildTypes {
debug {
testCoverageEnabled = true
}
}
}
project.apply {
project.extensions.create("jacocoAndroidUnitTestReport",
JacocoAndroidUnitTestReportExtension,
JacocoAndroidUnitTestReportExtension.defaultExcludesFactory())
project.plugins.apply(JacocoPlugin)
Plugin plugin = findAndroidPluginOrThrow(project.plugins)
def variants = getVariants(project, plugin)
Task jacocoTestReportTask = findOrCreateJacocoTestReportTask(project.tasks)
variants.all {
variant ->
def sourceDirs = variant.sourceSets.java.srcDirs.collect {
it.path }.flatten()
def classesDir
if (variant.hasProperty('javaCompileProvider')) {
classesDir = variant.javaCompileProvider.