如何在Azure DevOps中为Android项目配置Jacoco代码覆盖率及相关疑问
Azure DevOps + Kotlin Android 项目Jacoco代码覆盖率疑问解答
问题1:codeCoverageClassFilesDirectories参数是否指向需要统计代码覆盖率的Kotlin文件路径?
不是。这个参数指定的是编译后的字节码(.class文件)所在目录,而非Kotlin源码文件路径。Jacoco是通过分析编译生成的字节码来计算代码覆盖率的,Kotlin源码编译后会生成对应class文件,你需要把这些class文件的目录路径配置到该参数中,比如Android项目里常见的build/intermediates/kotlin/debug/classes或build/intermediates/javac/debug/classes这类路径。
问题2:是否需要在Android Studio中进行相关设置才能实现该功能?
需要。你必须先在Android Studio中完成项目Gradle配置的Jacoco启用操作,Azure DevOps的Gradle@2任务只是触发执行已配置好的覆盖率任务,具体需要做的配置包括:
- 在模块级
build.gradle.kts中引入Jacoco插件 - 开启单元测试的代码覆盖率支持:
testOptions.unitTests.isIncludeAndroidResources = true(或对应enableAndroidCoverage配置) - 定义Jacoco任务,指定待分析的class文件路径、源码路径、覆盖率报告输出路径等
完成本地Gradle配置后,Azure DevOps的Gradle@2任务才能正确调用Jacoco生成代码覆盖率报告。
内容的提问来源于stack exchange,提问作者user866821
相关产品推荐
相关产品推荐

