How to obtain coverage for Android project using Espresso tests
Asked Answered
M

1

28

I used to write Android tests using Robotium and retrieve the coverage using Emma.

Recently I changed to use Espresso tests and I'm having troubles to retrieve coverage of Instrumentation tests. I can only retrieve coverage for Unit tests that use Robolectric. I'm currently using gradle and Jacoco to do that. The best tutorial I found which helped me to get to this point was: https://blog.gouline.net/2015/06/23/code-coverage-on-android-with-jacoco/

Is it possible to retrieve coverage of Espresso tests that use Android instrumentation?

Maggot answered 28/10, 2015 at 14:32 Comment(0)
J
41

The android gradle plugin has a built-in feature.

Just set testCoverageEnabled parameter to true in your build.gradle file:

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

Then use:

./gradlew connectedCheck

or

./gradlew createDebugCoverageReport

It will produce a test coverage report in the directory of the module:

/build/outputs/reports/coverage/debug/

Just open the index.html

Example:

enter image description here

Junker answered 2/11, 2015 at 21:17 Comment(6)
Same here. This doesn't seem to work now. Any ideas?Margravine
The path is app/build/reports/coverage/debug/.Dallis
@Ahmad and others. It will not generate report if only all of Espresso test was success. You have to make sure that all of your test was success, not failed.Acetaldehyde
'.' is not recognized as an internal or external command, operable program or batch file. help!!Pinky
@AdeelTurk on Windows simply leave out the './' i.e. gradlew createDebugCoverageReportBlitz
@DaniloMz thanks i resolved it earlier but i appreciate your answer it might help anyone else out therePinky

© 2022 - 2024 — McMap. All rights reserved.