如何使用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的名称,如以下屏幕截图所示:
有太多的答案显示如何将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。 检查链接 :看看它是否有帮助