1

让一个 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) 构建和运行很好,但它在单元测试和覆盖测试方面存在问题。

  1. 运行单元测试时,测试将通过但显示一些错误日志:
Caused by: java.lang.IllegalStateException: Cannot process instrumented class com/push/NotificationManager. Please supply original non-instrumented classes.
  1. 当尝试运行覆盖测试时,它只能通过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"
    

问题

  1. 如何解决Please supply original non-instrumented classesAS (fox) 中的错误?

  2. 如何解决test events were not not received

  3. jacoco 覆盖率测试结果 html 在哪里,它显示了覆盖率的详细信息?

4

0 回答 0