【发布时间】:2015-05-16 09:05:38
【问题描述】:
我可以按照以下步骤获取代码覆盖率报告,
-
启用对所需构建类型的覆盖(例如调试)
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 Instrumentation 而不是 Robolectric 测试用例运行的。
当我从 ADB 运行仪器时(我猜这仍在使用 Emma),我得到一个 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
但我无法将 coverage.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
有没有办法解决这个问题?
【问题讨论】:
标签: android android-studio android-gradle-plugin jacoco emma