升级Android Studio(Arctic Fox)2020.3.1 Patch3后单元测试与覆盖率测试异常咨询
问题2:解决test events were not received错误
该错误是Gradle与AGP版本不匹配、AS测试运行配置错误导致,可按以下步骤修复:
- 首先做版本适配:你当前使用的AGP 4.0.0匹配的推荐Gradle版本为6.1.1,若要保留Gradle 6.8.3,可将AGP升级到4.2.2版本,二者版本适配后可解决事件传输异常问题。
- 修改AS测试运行配置:打开
File > Settings > Build, Execution, Deployment > Build Tools > Gradle,将Run tests using选项设置为Gradle,不要使用默认的IntelliJ IDEA,保证测试事件通过Gradle输出到AS面板。 - 清理缓存:执行
File > Invalidate Caches / Restart,重启后重新同步Gradle项目即可。
问题3:Jacoco覆盖率HTML报告路径
分两种触发场景:
- 若通过AS的
Run xxxTest with coverage入口触发测试,报告默认生成在模块根目录/build/reports/jacoco/test[对应构建变种名]UnitTest/html/路径下,比如使用debug构建变种时,完整报告入口为build/reports/jacoco/testDebugUnitTest/html/index.html。 - 若通过Gradle任务触发测试,AGP 4.0+默认不会自动生成全量明细报告,需要在模块
build.gradle中自定义Jacoco报告任务,示例如下:
task jacocoTestReport(type: JacocoReport) { dependsOn 'testDebugUnitTest' reports { xml.enabled false csv.enabled false html.destination file("${buildDir}/reports/jacoco/jacocoFullReport") } def classFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*'] def debugClassTree = fileTree(dir: "${buildDir}/intermediates/javac/debug/classes", excludes: classFilter) sourceDirectories.setFrom(files(["${project.projectDir}/src/main/java"])) classDirectories.setFrom(files([debugClassTree])) executionData.setFrom(fileTree(dir: "$buildDir", includes: ["jacoco/testDebugUnitTest.exec"])) }
执行自定义的jacocoTestReport任务后,明细报告将生成在你指定的build/reports/jacoco/jacocoFullReport路径下。
内容的提问来源于stack exchange,提问作者lannyf
相关产品推荐
相关产品推荐

