How to get code coverage using Android Studio?
Solution 1
With the new Android Studio 1.2, you are able to run your unit tests and see the coverage all within the IDE.
First, you'll need to get your unit tests running in the IDE. (if you already can, then skip this step)
This guide and demo will help you.
Secondly, you'll need to create a JUnit Run configuration
Inside this configuraiton, you'll be able to choose
- Test Kind: "All in Package"
- Package: [the package where your tests reside, eg: "com.myapp.tests"]
- Search for tests: Across Module Dependencies (could be diff for your setup)
- VM -options: -ea
- Working Directory: [your project's directory]
- Use classpath of mod: [select your module]
If you have any issue creating your JUnit Run Configuration, you should visit this guide for help.
Lastly, in the latest Android Studio, you should be able to run your JUnit-Run Configuration by clicking on the 'Run with Coverage' button.
In Android Studio 2.1.3 the is label Run Unit tests with Coverage
where Unit test
is the name of your test configuration as shown in the following screenshot:
Solution 2
There are so much answers showing how to apply jacoco
plugin to Android studio project, which is outdated, and wasted me so much time to figure out the solution for recently Android studio(My Android Studio is version 2.1.2).
-
Jacoco
plugin is built in for Android Studio gradle, what you need to do is just enable it like following:
buildTypes { ... debug { testCoverageEnabled true } }
After you do above, run unit test task
./gradlew testDebugUnitTest
Then create coverage files:
./gradlew createDebugCoverageReport
Coverage files will be created under
<module>/build/reports/coverage/debug
folder,includeindex.html
, which you can open it with browser, andreport.xml
which you can use to get a report byjenkins jacoco plugin
or other continues integration tools.
For those who got 0% coverage with jenkins jacoco plugin
, be sure to use the right version.
quote from their site:
Unfortunately JaCoCo 0.7.5 breaks compatibility to previous binary formats of the jacoco.exec files. The JaCoCo plugin up to version 1.0.19 is based on JaCoCo 0.7.4, thus you cannot use this version with projects which already use JaCoCo 0.7.5 or newer. JaCoCo plugin starting with version 2.0.0 uses JaCoCo 0.7.5 and thus requires also this version to be used in your projects. Please stick to JaCoCo plugin 1.0.19 or lower if you still use JaCoCo 0.7.4 or lower
Solution 3
Enable testCoverage in your module build.gradle
file
buildTypes {
debug {
testCoverageEnabled true
}
}
and then
Right click on the test -> java package and select Run Tests in Java with Coverage
to run all tests with code coverage or right click on the particular test class and click Run SampleTest with Coverage
Solution 4
I don't think you can see visual code coverage report inside Android Studio. But you could try Jacoco
. You will need to integrate it in your build.gradle
file. You can find the similar question & solution here
Solution 5
We use maven to build our app and cobertura for code coverage reporting
both are really easy to integrate
android maven integration:
http://www.vogella.com/tutorials/AndroidBuildMaven/article.html
Maven + Cobertura Code Coverage Example:
http://www.mkyong.com/qa/maven-cobertura-code-coverage-example/
h.usune
Updated on July 05, 2022Comments
-
h.usune almost 2 years
I am developing apps using Android Studio.
I was able to run the test code.
But, I do not know how to get code coverage in android studio.I have already seen the following links.
Android Gradle Code Coverage
But I can't wait for update to v0.6 supporting emma.Project configuration is as follows.
Main code
MyProject/AppName/src/main/java/mypackage/MyClass.javaTest code
MyProject/AppName/src/instrumentTest/java/mypackage/test/MyClassTest.javaProject configuration
MyProject
├─build.gradle
└─AppName
├─build.gradle
└─src
├─main
│ ├─java
│ │ └─mypackage
│ │ └─MyClass.java
│ ├─res
│ └─AndroidManifest.xml
└─instrumentTest
└─java
└─mypackage
└─test
└─MyClassTest.java -
h.usune over 10 yearsI tried how to set the JaCoCo in Android Studio, but it did not work. I have the same result as follows. stackoverflow.com/questions/18358297/… I checked other, how to set the JaCoCo in Android Studio, but I did not get the solution. stackoverflow.com/search?q=android+jacoco Please tell me if you know how to set the JaCoCo in Android Studio.
-
rekire over 10 years@h.usune same issue for me. Ping me if you find a solution.
-
user2511882 over 10 yearsgradle.org/docs/current/userguide/jacoco_plugin.html.. this should help you setup jacoco on gradle.
-
Meanman almost 9 yearsGreat answer, the 'Run with Coverage' button is key and sits to the right of the 'Debug' button by default.
-
Caleb over 7 yearsTo do this via the command line, you would most likely need to use a tool like JaCoCo. docs.gradle.org/current/userguide/jacoco_plugin.html would be a good place to start.
-
最白目 about 7 yearsI get 0% coverage with the built in Jacoco. Anyone knows how to fix this? (Using gradle 2.2.3)
-
Someone about 6 yearsI got 0% on newer Samsung devices, other devices work fine.
-
W00di over 5 yearsI got the report under reports/jacoco folder
-
Marci about 4 years