如何使用Android Studio获取代码覆盖率?

我正在开发使用Android Studio的应用程序。
我能够运行testing代码。
但是,我不知道如何获得android studio的代码覆盖率。

我已经看到以下链接。
Android Gradle代码覆盖率
但我等不及要更新到支持emma的v0.6。

项目configuration如下。

主要代码
MyProject的/ AppName的/ src目录/主/ JAVA / mypackage中/ MyClass.java

testing代码
MyProject的/ AppName的/ src目录/ instrumentTest / JAVA / mypackage的/testing/ MyClassTest.java

项目configuration
我的项目
├─build.gradle
└─AppName
├─build.gradle
└─src
├─main
│├─java
││└─mypackage
││└─MyClass.java
│├─res
│└─AndroidManifest.xml
└─instrumentTest
└─java
└─mypackage
└─test
└─MyClassTest.java

使用新的Android Studio 1.2,您可以运行unit testing,并在IDE中查看覆盖范围。

首先,你需要让你的unit testing在IDE中运行。 (如果你已经可以,那么跳过这一步)

本指南和演示将帮助您。

其次,你需要创build一个JUnit运行configuration

在这里输入图像说明

在这个configuration里面,你可以select

  • testingtypes: “全包”
  • 软件包: [您的testing所在的软件包,例如:“com.myapp.tests”]
  • searchtesting:跨模块依赖关系(可能是您的设置不同)
  • VM -options: -ea
  • 工作目录: [你的项目目录]
  • 使用mod的classpath: [select你的模块]

如果您在创buildJUnit运行configuration时遇到任何问题,则应该访问本指南以获取帮助。

最后,在最新的Android Studio中,您应该可以通过点击“运行覆盖率”button来运行JUnit-Runconfiguration。


在Android Studio 2.1.3中, Run Unit tests with Coverage标签是Run Unit tests with Coverage ,其中Unit test是testingconfiguration的名称,如以下屏幕截图所示:

Android Studio:“使用Coverage运行单元测试”按钮

有太多的答案显示如何将jacoco插件应用到Android Studio项目,这已经过时了,浪费了我很多时间来找出最近的Android Studio的解决scheme(我的Android Studio是2.1.2版本)。

  • Jacoco插件是为Android Studio gradle构build的,你需要做的只是启用它,如下所示:
   buildTypes {
     ...
    debugging{
       testCoverageEnabled为true
     }
   }
  • 完成上述操作后,运行unit testing任务./gradlew testDebugUnitTest

  • 然后创buildcoverage文件: ./gradlew createDebugCoverageReport

  • 覆盖文件将在<module>/build/reports/coverage/debug文件夹下创build,包括index.html ,可以用浏览器打开它,还可以使用report.xml来获取jenkins jacoco plugin或其他的报告继续整合工具。

对于jenkins jacoco plugin 覆盖率0%的 jenkins jacoco plugin ,请务必使用正确的版本。 从他们的网站报价:

不幸的是,JaCoCo 0.7.5打破了以前的jacoco.exec文件的二进制格式的兼容性。 JaCoCo插件版本1.0.19基于JaCoCo 0.7.4,因此您不能将此版本用于已经使用JaCoCo 0.7.5或更新版本的项目。 从2.0.0版开始的JaCoCo插件使用JaCoCo 0.7.5,因此也需要在您的项目中使用该版本。 如果您仍然使用JaCoCo 0.7.4或更低,请坚持JaCoCo插件1.0.19或更低

我们使用maven构build我们的应用程序和cobertura代码覆盖率报告

两者都很容易整合

android maven集成:

http://www.vogella.com/tutorials/AndroidBuildMaven/article.html

Maven + Cobertura代码覆盖范例:

http://www.mkyong.com/qa/maven-cobertura-code-coverage-example/

我不认为你可以在Android Studio中看到视觉代码覆盖率报告。 但是你可以尝试Jacoco 。 您将需要将其集成到build.gradle文件中。 你可以在这里find类似的问题和解决scheme

Android工作室gradle内置了Jacoco插件,您可以使用它来查找代码覆盖率。 我已经写成文章一步一步configurationjaococo来查找Espressotesting用例的代码覆盖范围,但是您也可以将它用于Robotium。 看一下这个。

http://qaautomated.blogspot.in/2016/03/how-to-find-code-coverage-with-jacoco.html

您是否尝试过使用Jacoco插件获取您的项目的代码覆盖率? 这是一个很好的插件,可以根据您的软件包或单个课程进行报道。 我不知道如何configurationJacoco,因为我使用Maven。 检查链接 :看看它是否有帮助