让一个 android 库项目在 AS 4.1.2 上运行良好。
刚刚安装了 Android studio (fox) 2020.3.1 补丁 3,没有做任何更改(除了将 sdk jre 设置为 java 8,版本 18.6.0_60,因为项目正在使用JavaVersion.VERSION_1_8
)。
使用新的 AS(fox) 构建和运行很好,但它在单元测试和覆盖测试方面存在问题。
- 运行单元测试时,测试将通过但显示一些错误日志:
Caused by: java.lang.IllegalStateException: Cannot process instrumented class com/push/NotificationManager. Please supply original non-instrumented classes.
- 当尝试运行覆盖测试时,它只能通过
Rnu xxxtest with coverage
不像在 AS 4.1.2 中,它可以从 Gradle 窗格/任务中运行覆盖测试:
同样在 AS 4.1.2 中,它可以在 build/report/jacoco 文件夹中查看覆盖率测试报告:
在新的 AS(fox) 中,它失败了很多test events were not not received
在新的 AS(fox) 中,在 build/report 文件夹中,它找不到结果的 jacoco 文件夹(html 文件告诉覆盖测试结果是什么,即分支是如何覆盖的)。
相关依赖:
Gradle:类路径“com.android.tools.build:gradle:4.0.0”distributionUrl=https://services.gradle.org/distributions/gradle-6.8.3-bin.zip
测试:
类路径“org.jacoco:org.jacoco.core:0.8.1”testImplementation "junit:junit:4.12" testApi "org.robolectric:robolectric:4.3"
问题
如何解决
Please supply original non-instrumented classes
AS (fox) 中的错误?如何解决
test events were not not received
?jacoco 覆盖率测试结果 html 在哪里,它显示了覆盖率的详细信息?