Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gradle Jacoco插件:从另一个模块中的类生成覆盖率_Java_Android_Gradle_Jacoco - Fatal编程技术网

Java Gradle Jacoco插件:从另一个模块中的类生成覆盖率

Java Gradle Jacoco插件:从另一个模块中的类生成覆盖率,java,android,gradle,jacoco,Java,Android,Gradle,Jacoco,我正在处理一个包含两个模块的库项目:主模块包含逻辑,我有一个测试模块,其中包含两个与主模块类相关的测试UTIL,以及来自主模块的测试。我需要将测试移动到测试模块以避免循环依赖。嗯 现在,在运行测试(包含在测试模块中)之后,我需要生成核心模块的覆盖率。我的jacoco配置如下: task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') { reports { xml.enabled

我正在处理一个包含两个模块的库项目:主模块包含逻辑,我有一个测试模块,其中包含两个与主模块类相关的测试UTIL,以及来自主模块的测试。我需要将测试移动到测试模块以避免循环依赖。嗯

现在,在运行测试(包含在测试模块中)之后,我需要生成核心模块的覆盖率。我的
jacoco
配置如下:

task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') {

    reports {
        xml.enabled = true
        html.enabled = true
    }

    jacocoClasspath = configurations['androidJacocoAnt']

    def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*']
    def debugTree = fileTree(dir: "${rootProject.projectDir}/test-module/build/intermediates/classes/debug", excludes: fileFilter)
    def debugMainTree = fileTree(dir: "${rootProject.projectDir}/main-module/build/intermediates/classes/debug", excludes: fileFilter)
    def mainSrc = "${rootProject.projectDir}/test-module/src/main/java"
    def mainMainSrc = "${rootProject.projectDir}/main-module/src/main/java"

    sourceDirectories = files([mainSrc])
    additionalSourceDirs = files([mainMainSrc])
    classDirectories = files([debugTree])
    additionalClassDirs = files([debugMainTree])
    executionData = files "${buildDir}/jacoco/testDebugUnitTest.exec"
}
报告中显示了所有类,但覆盖率为0%。我收到一些关于输出的警告,比如:

[ant:jacocoReport] Classes in bundle 'test-module' do no match with execution data. For report generation the same class files must be used as at runtime.
[ant:jacocoReport] Execution data for class my/class/from/MainModule does not match.
我查看了
intermediates
文件夹,试图找出测试从何处获取主类文件,但没有成功


顺便说一句,这是一个Android库项目(有两个内部发布的工件)。我正在使用Gradle 2.8。

您解决了这个问题吗?我在一个多模块梯度项目中遇到了一个类似的问题。