如何使用 Espresso 测试获得 Android 项目的覆盖率

How to obtain coverage for Android project using Espresso tests

我曾经使用 Robotium 编写 Android 测试并使用 Emma 检索覆盖率。

最近我改为使用 Espresso 测试,但在检索 Instrumentation 测试的覆盖范围时遇到了麻烦。我只能检索使用 Robolectric 的单元测试的覆盖率。我目前正在使用 gradle 和 Jacoco 来做到这一点。我找到的帮助我达到这一点的最佳教程是:https://blog.gouline.net/2015/06/23/code-coverage-on-android-with-jacoco/

是否可以检索使用 Android 仪器的 Espresso 测试的覆盖率?

android gradle 插件具有内置功能。

只需在 build.gradle 文件中将 testCoverageEnabled 参数设置为 true

android {
   buildTypes {
      debug {
         testCoverageEnabled = true
      }
   }
}

然后使用:

./gradlew connectedCheck

./gradlew createDebugCoverageReport

它将在模块目录中生成测试覆盖率报告:

/build/outputs/reports/coverage/debug/

只需打开 index.html

示例: