我正在使用Jacoco创建一份覆盖率报告,并且在更新Gradle和BuildTools版本之前一直工作良好。然后,我还原这些更改并重新工作。
Jacoco在此处寻找 .class 文件:
$ {buildDir} / intermediates / classes / debug
这是 app / build / intermediates / classes / debug 。但是我注意到,升级后该路径丢失了,中间体
中没有 classes 目录我的配置有效:
项目级别模块
classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'io.fabric.tools:gradle:1.25.1'
应用程序级别模块
compileSdkVersion 27
buildToolsVersion "27.0.3"
这是更新的时间:
项目级别模块
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'io.fabric.tools:gradle:1.25.4'
应用程序级别模块
compileSdkVersion 28
buildToolsVersion "28.0.3"
我找不到关于该路径正在移动或正在发生什么的任何参考
我的问题是,由于Java字节码(生成的.class文件)不存在,因此Jacoco无法创建覆盖率报告
答案 0 :(得分:3)
一个人都可以更改覆盖任务使用的classDirectories
:
task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {
...
classDirectories = fileTree(
dir: "${project.buildDir}/intermediates/javac/debug/compileDebugJavaWithJavac/classes/${sourcePath}",
excludes: [ ... ]
)
...
}
答案 1 :(得分:2)
他们在intermediates\javac\debug\compileDebugJavaWithJavac\classes
下
您可以配置Jacoco来更改类路径。
我不熟悉Jacoco,但我认为它具有一个名为includes
的属性,该属性用于.class文件。
或者我认为应该有一个.properties
。