使用最新的 Sentry 依赖项时,类的执行数据在 Jacoco 中不匹配

问题描述 投票:0回答:1

添加最新的 Sentry 依赖项(7.6.0)后,我的测试覆盖范围被破坏。我的一些课程开始收到这些错误:

[ant:jacocoReport] Classes in bundle 'app' do not match with execution data. For report generation the same class files must be used as at runtime.
[ant:jacocoReport] Execution data for class *** does not match.

移除哨兵覆盖后,它可以正常工作。 有人遇到过这个问题吗

这是我的 jacoco 配置:

apply plugin: 'jacoco'

jacoco {
    toolVersion '0.8.11'
}

tasks.withType(Test).configureEach {
    jacoco.includeNoLocationClasses = true
    jacoco.excludes = ['jdk.internal.*']
}

project.afterEvaluate {
    tasks.register("defaultDebugCoverage", JacocoReport) {
        dependsOn("testDefaultDebugUnitTest")
        mustRunAfter('testDefaultDebugUnitTest')
        group = "Reporting"
        description = "Generate Jacoco coverage reports for the defaultDebug build."

        reports {
            html.required.set(true)
            xml.required.set(true)
        }

        def excludes = [
                '**/R.class',
                '**/R$*.class',
                '**/BuildConfig.*',
                '**/Manifest*.*',
                '**/*_Provide*Factory*.*',
                '**/*_ViewBinding*.*',
                '**/AutoValue_*.*',
                '**/R2.class',
                '**/R2$*.class',
                '**/*Directions$*',
                '**/*Directions.*',
                '**/*Binding.*'
        ]

        def jClasses = "${project.buildDir}/intermediates/javac/defaultDebug/classes"
        def kClasses = "${project.buildDir}/tmp/kotlin-classes/defaultDebug"
        def javaClasses = fileTree(dir: jClasses, excludes: excludes)

        def kotlinClasses = fileTree(dir: kClasses, excludes: excludes)

        classDirectories.from = files([javaClasses, kotlinClasses])
        def sourceDirs = ["${project.projectDir}/src/main/java", "${project.projectDir}/src/main/kotlin",
                          "${project.projectDir}/src/defaultDebug/java", "${project.projectDir}/src/defaultDebug/kotlin"]

        sourceDirectories.from = files(sourceDirs)

        executionData.from = files(["${project.buildDir}/jacoco/testDefaultDebugUnitTest.exec"])
    }
}

经过一番研究,我发现Sentry可以修改我的类。但我不知道如何解决它。

android kotlin gradle jacoco sentry
1个回答
0
投票

我也使用 Sentry,也遇到了这个问题。我通过在应用程序的 build.gradle 中添加此配置来解决它:

sentry {
  tracingInstrumentation {
    enabled = false
  }
}

进一步排除 Sentry 故障的链接位于 docs

© www.soinside.com 2019 - 2024. All rights reserved.