I managed to get a code coverage report by following these steps:
Enable coverage by the type of assembly you want (e.g. debugging)
buildTypes { debug { testCoverageEnabled true } }
Apply Jacoco plugin and install version
apply plugin: 'jacoco' jacoco { version "0.7.1.201405082137" }
Run
./gradlew createDebugCoverageReport
All tests in connectedAndroidTest are launched, and a coverage report is generated based on them. I can find coverage reports in
app/build/outputs/reports/coverage/{buildType}/index.html
and coverage.ec file in
app/build/outputs/code-coverage/connected/coverage.ec
But there is no jacoco.exec, as I run from Android Instrumentation instead of Robolectric test cases.
And when I run the toolkit from ADB (I think it still uses Emma) as follows, I get the coverage.ec file as follows:
$ adb shell am instrument -w -e coverage true -e coverageFile /sdcard/coverage.ec com.sample.helloworld.test/.Runner .... OK (4 tests) Generated code coverage data to /sdcard/coverage.ec
But I canβt convert cover.ec to report using emma, because the coverage.em file is missing,
java -cp ~/adt-bundle-mac-x86_64-20130729/sdk/tools/lib/emma_device.jar emma report -r html -in \ coverage.em,myFile.ec,myapp_coverage1.ec -sp /path/to/myapp/src
Is there any way to solve this problem?
source share