【问题标题】:Android Local Unit test with coverage report from command line带有来自命令行的覆盖率报告的 Android 本地单元测试
【发布时间】:2015-11-16 15:28:25
【问题描述】:

我正在为 Android 开发一个新项目。目前,我正在使用 Android Studio 作为 IDE。我需要运行单元测试和系统 (CI) 测试流程,它们可以在本地机器 (JVM) 和模拟器/真实设备上运行以进行检测。

请注意,我正在通过命令行运行所有单元测试。

为了获得模拟器/真实设备的代码覆盖率,我正在使用 Jacoco。 并运行以下命令: gradlew createDebugCoverageReport 但是,我找不到任何方法来运行本地机器单元测试和命令行的覆盖率报告。 唯一的方法是通过选择“Run XXX with Code Coverage”从 android studio 运行它:

能否请您告知是否可以从覆盖范围的命令行运行本地单元测试。并以 html 文件的形式获取报告?

谢谢, 扎奇

【问题讨论】:

  • 我听说过 Jacoco,但没有详细信息。你应该检查它是否是一个可能的解决方案。

标签: android unit-testing code-coverage jacoco


【解决方案1】:

如果我理解正确,您正在尝试使用基于 IntelliJ 的 Android 工作室的覆盖能力运行测试。

基本上可以使用 IntelliJ 的命令行工具来完成。 你可以在这里阅读更多关于它的信息,但它通常允许你完成所有可以通过命令行从 GUI 完成的事情:

IntelliJ creating command line tools

有关 IntelliJ 工具覆盖范围的更多一般信息,您可以在此处阅读:

IntelliJ Code coverage

希望对你有帮助,祝你好运。

【讨论】:

  • 我是安卓开发新手。我正在使用 android studio 进行开发。我想从命令行获取 JUnit 测试代码覆盖率。 Gradle 不支持单元测试,Jacoco 也不支持。 Intellij 是我需要在 android studio 中安装的 pugin 吗?
  • 在 Android Studio 中,您应该能够使用 gradlew cC 命令运行覆盖范围的单元测试。如果我没记错的话,它默认内置在android studio中,请尝试阅读:bignerdranch.com/blog/…
  • Yes gradlew cC 命令在 androidTest 文件夹中运行测试。我正在尝试使用 gradle 从命令行运行具有代码覆盖率的 JUnit 测试用例。
【解决方案2】:

目前,在 gradle Android 工具中没有为 Junit(本地)测试 创建报告的默认任务。 但是,创建它们很容易。

只需按照说明在此处集成自定义 jacoco.gradle 文件:

https://gist.github.com/mrsasha/384a19f97cdeba5b5c2ea55f930fccd4

然后您将执行以下任务:test[Flavor]UnitTestCoverage

因此,要生成报告,您只需:

$ ./gradlew test[Flavor]UnitTestCoverage

【讨论】:

    【解决方案3】:

    可以使用android studio生成报告,运行覆盖率测试后出现结果窗口,点击红色边框按钮

    查看此图片:

    【讨论】:

    • 报告输出到哪个目录?
    • 它们让您可以选择设备上的任何目录
    【解决方案4】:

    如果您使用 gradle wrapper 或 gradle tasks,请在终端中运行 ./gradlew tasks,您将获得可用验证任务的列表(请参见下面的屏幕截图):

    您可以参考此link 以获得更全面的测试命令行。

    【讨论】:

    • 这是通过将testCoverageEnabled = true 添加到buildTypesbuildTypesdebug 元素来启用的,但运行此任务将运行并为仪器测试而不是单元测试生成覆盖范围。跨度>
    【解决方案5】:

    您可以使用testDebugUnitTest,将其作为./gradlew <your_module_name>:testDebugUnitTest 运行,它将运行与此特定模块相关的测试+ 它会在your_module/build/reports/tests/testDebugUnitTest 文件夹下生成一个html 报告,其中包含覆盖范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-03
      • 2017-03-23
      • 2019-10-23
      • 1970-01-01
      • 2016-08-04
      • 2019-11-01
      • 1970-01-01
      • 2018-03-30
      相关资源
      最近更新 更多