如何使用Espresso测试获取Android项目的覆盖范围

Pau*_*ros 17 android code-coverage android-testing android-espresso gradle-android-test-plugi

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

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

是否可以检索使用Android检测的Espresso测试的覆盖范围?

Gab*_*tti 25

android gradle插件具有内置功能.

只需在您的文件中设置testCoverageEnabled参数:truebuild.gradle

android {
   buildTypes {
      debug {
         testCoverageEnabled = true
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

然后使用:

./gradlew connectedCheck
Run Code Online (Sandbox Code Playgroud)

要么

./gradlew createDebugCoverageReport
Run Code Online (Sandbox Code Playgroud)

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

/build/outputs/reports/coverage/debug/
Run Code Online (Sandbox Code Playgroud)

打开吧 index.html

例:

在此输入图像描述

  • 同样在这里。现在这似乎行不通了。有任何想法吗? (3认同)
  • Windows 上的 @AdeelTurk 只需省略 './' 即 gradlew createDebugCoverageReport (3认同)
  • @艾哈迈德和其他人。如果 Espresso 测试全部成功,则不会生成报告。你必须确保所有的测试都是成功的,而不是失败的。 (2认同)