Android Studio Chipmunk配置JaCoCo覆盖率运行器及测试报错问题
Android Studio Chipmunk(2021.2.1)JaCoCo覆盖率配置及报错解决
新版JaCoCo运行器配置路径
Android Studio 4.1.2版本可直接在运行配置界面选择JaCoCo作为覆盖率运行器,Chipmunk版本对配置入口做了收纳,操作步骤如下:
- 打开顶部菜单栏
Run > Edit Configurations - 选中需要配置的测试运行项
- 点击配置界面的
Modify options按钮 - 在展开菜单的
Code Coverage分类下,勾选JaCoCo选项即可完成运行器设置
"Test events were not received"报错解决方案
完成上述配置后如果运行测试出现Test events were not received报错,可按以下步骤逐一排查修复:
- 检查模块级Gradle配置
打开对应模块的build.gradle文件,在android配置块中显式开启测试覆盖率、指定兼容的JaCoCo版本,参考配置如下:
注意JaCoCo版本需要和你项目使用的Android Gradle Plugin版本匹配,避免版本冲突。android { buildTypes { debug { testCoverageEnabled true } } // 显式指定JaCoCo版本,规避IDE内置版本与项目AGP版本不兼容问题 jacoco { version = "0.8.8" } } - 清理IDE缓存重建索引
点击顶部菜单栏File > Invalidate Caches...,勾选清除文件系统缓存选项后点击Invalidate and Restart,等待IDE重启完成索引重建后再尝试运行测试。 - 校验测试运行器与依赖配置
检查build.gradle中defaultConfig块指定的测试运行器与依赖匹配,常规配置参考:android { defaultConfig { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } } dependencies { // 本地单元测试依赖 testImplementation 'junit:junit:4.13.2' // 仪器化测试依赖 androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } - 检查测试用例有效性
确认测试方法添加了@Test注解,不存在被忽略的测试类/方法,避免因无有效可执行测试用例触发该报错。 - 验证Gradle任务可用性
打开IDE底部终端,先通过Gradle命令直接执行覆盖率任务,确认任务本身可正常运行:- 本地单元测试覆盖率任务:
./gradlew :<你的模块名>:testDebugUnitTestCoverage - 仪器化测试覆盖率任务:
./gradlew :<你的模块名>:connectedDebugAndroidTestCoverage
如果命令行可正常执行并生成覆盖率报告,仅IDE点击运行报错,可删除原有测试运行配置后重新新建配置,再重新选择JaCoCo运行器即可恢复。
- 本地单元测试覆盖率任务:
内容的提问来源于stack exchange,提问作者lannyf
相关产品推荐
相关产品推荐

