android - 如何使用 Espresso 测试获取 Android 项目的覆盖率

标签 android code-coverage android-testing android-espresso gradle-android-test-plugi

我曾经使用 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 插件有一个内置功能。<​​/p>

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

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

然后使用:

./gradlew connectedCheck

./gradlew createDebugCoverageReport

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

/build/outputs/reports/coverage/debug/

只需打开index.html

例子:

enter image description here

关于android - 如何使用 Espresso 测试获取 Android 项目的覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33393871/

相关文章:

android - Gradle运行检测测试-如何使用命令行排除软件包?

android - 为什么我的 "centered"对象在我的 RelativeLayout 中稍微偏离中心?

android - 警报(管理器)未调用广播接收器

ios - 获取代码覆盖率统计 IOS

python - Coverage.py:如何附加从 shell 脚本调用的多个 python 脚本的结果

java - RobolectricTestRunner,测试类只能有一个构造函数

android - 并非 ViewPager 的 fragment 中的所有 View 都会更新

android - cloud.speech.v1.StreamingRecognizeResponse - 错误 : an enum switch case label must be the unqualified name of an enumeration constant

python - Django 中 jinja2 模板的代码覆盖率

java - Android UI 测试有时会因 Robotium 无法找到 ImageButton 对象而失败