JaCoCo的覆盖率为0%,即使所有测试都通过了

时间:2019-04-08 14:10:11

标签: android android-testing jacoco androidx

  1. 我已经在androidTest目录下编写了一些测试用例。
  2. 我正在使用androidx(testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  3. 添加了依赖项:

    androidTestImplementation 'androidx.test:runner:1.1.0'

    androidTestImplementation 'androidx.test:rules:1.1.0'

  4. 也将JaCoCo添加为依赖项。

  5. 当我运行createDebugAndroidTestCoverageReport Gradle任务时,所有测试用例均成功运行,但报告中的覆盖率为0%

我猜测是由于此错误导致的:

  

V / InstrumentationResultParser:错误:无法生成Emma / JaCoCo承保范围。   V / InstrumentationResultParser:INSTRUMENTATION_CODE:-1

1 个答案:

答案 0 :(得分:2)

很可能不需要自定义版本androidx.test.runner.AndroidJUnitRunner

但这是您定义为debugTree的路径:

"${project.buildDir}/intermediates/classes/debug"

同时可能会有相似之处:

"${project.buildDir}/intermediates/javac/debug/compileDebugJavaWithJavac/classes"

例如:

build/intermediates/javac/debug/compileDebugJavaWithJavac/classes
build/intermediates/javac/release/compileReleaseJavaWithJavac/classes

如果找不到*.class文件,则测试覆盖率将报告为0%

只需浏览build目录以查看实际路径是什么。