在使用Jacoco进行代码覆盖率检测时,有时会出现“Please supply original non-instrumented classes”错误。这是因为Jacoco需要分析未被修改的代码文件,但是当应用程序被编译时,原始代码文件被修改并添加了Jacoco的字节码插桩。因此,Jacoco无法访问原始代码文件,从而导致错误。
为了解决这个问题,可以通过更改Gradle配置文件来提供未修改的源代码文件。具体步骤如下:
1.在build.gradle文件中,添加以下内容:
android { ... buildTypes { debug { testCoverageEnabled true } } }
2.运行应用程序,并在设备上运行测试套件。
3.在Android Studio中,单击“Run”按钮并选择“Edit Run Configuration”或“Debug Configuration”。
4.选择“Edit Configuration”面板的“Android JUnit”或“Android Instrumentation Tests”。
5.在配置面板中,选择“Jacoco”标签,并将“Code coverage”选项设置为“Enable code coverage”。
6.在“Extra flags”字段中添加以下内容:
--class-dir $PATH_TO_APP_CLASSES --javaagent:$PATH_TO_JACOCO_AGENT_JAR=destfile=$PATH_TO_COVERAGE_FILE
其中,$PATH_TO_APP_CLASSES是应用程序的类路径,$PATH_TO_JACOCO_AGENT_JAR是Jacoco代理JAR文件的路径,$PATH_TO_COVERAGE_FILE是生成的代码覆盖率报告的路径。
7.重新运行测试套件,并检查生成的代码覆盖率报告。
通过这种方式,可以解决“Please supply original non-instrumented classes”错误,并获得准确的代码覆盖率报告。
上一篇:AndroidJackson创建JSON但产生无效结果
下一篇:AndroidJava(ffmpeg-kit).Assistance(opinion)withcombining4ffmpegcommandstogether