我正在尝试获取 Android 应用程序模块的测试覆盖率报告并执行testVariantBuildTypeUnitTest任务。
尽管所有测试均已通过,但TEST-classNameTest.xml文件包含以下错误消息。仅当包含从 Kotlin 调用 Java 的方法时才会出现此错误。这个问题有什么解决办法吗?
**Caused by: java.lang.IllegalStateException: Cannot process instrumented class... Please supply original non-instrumented classes.
at org.jacoco.agent.rt.internal_f3994fa.core.internal.instr.InstrSupport.assertNotInstrumented(InstrSupport.java:238)
at org.jacoco.agent.rt.internal_f3994fa.core.internal.instr.ClassInstrumenter.visitField(ClassInstrumenter.java:56)
at org.jacoco.agent.rt.internal_f3994fa.asm.ClassVisitor.visitField(ClassVisitor.java:339)
at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.readField(ClassReader.java:1111)
at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.accept(ClassReader.java:713)
at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.accept(ClassReader.java:401)
at org.jacoco.agent.rt.internal_f3994fa.core.instr.Instrumenter.instrument(Instrumenter.java:90)
at org.jacoco.agent.rt.internal_f3994fa.core.instr.Instrumenter.instrument(Instrumenter.java:108)
Run Code Online (Sandbox Code Playgroud)
我们有多模块 android 项目,因此我们使用这个自定义 Jacoco 任务来获取覆盖率报告:
project.afterEvaluate {
(android.hasProperty('applicationVariants')
? android.'applicationVariants'
: android.'libraryVariants')
.all { variant ->
def variantName = variant.name
def unitTestTask = "test${variantName.capitalize()}UnitTest"
def jacocoReportName = unitTestTask + project.name
tasks.create(name: jacocoReportName, type: JacocoReport, dependsOn: [
"$unitTestTask"
]) …Run Code Online (Sandbox Code Playgroud) 我正在尝试网络流量检查器,这是 Android Studio Flamingo 的一项新功能。我正在尝试将状态代码为 400 的响应的状态代码更改为 200。
在规则添加过程中,我按顺序尝试了以下步骤。
我在“协议”、“主机 URL”、“路径”和“方法”字段中输入了尝试请求的端点信息。
我标记了“Apple 状态规则:”400
我将“替换为状态代码:”字段标记为 200
在正文规则部分中,我输入了要返回的 json 正文并标记了“替换整个正文”。
然后,我尝试向同一端点发送请求。
在 Network Inspector -> Connection View 中,端点请求的状态代码为 200,并且正文似乎已按照我的意愿进行了更改。但是, Retrofit中只有主体发生变化,状态代码仍为 400。因此,我无法在代码中测试成功案例。当我查看Okhttp日志时,我看到状态代码为 400 Bad Request,但正文是我所期望的。
这里有一个关于 Network Inspector 的问题,但尚未解决。有人面临这个问题吗?
问候
图杰。