我能够按照以下步骤获得的代码覆盖率报告,Jacoco转换coverage.ec报道没有coverage.em
你想构建类型启用覆盖(例如调试)
buildTypes { debug { testCoverageEnabled true } }
应用Jacoco插件,并设置版本
apply plugin: 'jacoco' jacoco { version "0.7.1.201405082137" }
运行
./gradlew createDebugCoverageReport
所有connectedAndroidTest测试运行,并覆盖报告是基于他们产生。我可以在
app/build/outputs/reports/coverage/{buildType}/index.html
找到覆盖报告和coverage.ec文件
app/build/outputs/code-coverage/connected/coverage.ec
但没有jacoco.exec,因为我是从Android的仪器,而不是Robolectric运行测试用例。
当我运行从ADB仪表(我想这依然采用艾玛)如下,我得到一个coverage.ec文件,如下所示,
$ 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
但我不能够覆盖转换.ec使用emma报告,因为coverage.em文件丢失,
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
是否有解决此问题的方法?
我可以使用自定义gradle这个任务coverage.ec文件转换为jacoco报告,落实在https://github.com/srideviaishwariya/Automation-Tools- for Android/tree/master/Sample1 – sri 2015-03-28 20:44:14