我能够通过以下步骤获得代码覆盖率报告,
buildTypes { debug { testCoverageEnabled true } }apply plugin: 'jacoco' jacoco { version "0.7.1.201405082137" }./gradlew createDebugCoverageReportapp/build/outputs/reports/coverage/{buildType}/index.html中的coverage.ec文件
app/build/outputs/code-coverage/connected/coverage.ec
但是没有jacoco.exec,因为我运行的是安卓测试用例,而不是Robolec计量测试用例。
当我按照下面的方式运行亚行的工具(我猜它仍然在使用艾玛)时,我得到了一个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转换为使用艾玛报告,因为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有办法解决这个问题吗?
发布于 2015-09-29 19:14:32
只需使用"coverage.ec“作为".exec”文件,我就可以使用它了
这就是Google在Android插件源代码中所做的。
公共静态最终字符串FILE_COVERAGE_EC = "coverage.ec";
在SimpleTestCallable.java下的com.android.builder.internal.testing包中。
发布于 2017-03-09 15:05:40
我写了一篇关于相同场景和解决方案的文章。你可以在这里读到。为了回答这个特定的问题,您应该执行以下步骤:将gradle更改为:
apply plugin: 'jacoco'
jacoco {
toolVersion = '0.7.5.201505241946'
}第二次下载这个罐子。继续你所做的事情,直到你有了coverage.ec文件。那么当你让它运行时:
java -jar android-jacoco-the-missing.jar -f /path/to/coverage.ec -p ./path/to/android/project就这样!jar将生成一个包含代码覆盖的文件夹。
另一种选择是在Jenkins插件中使用coverage.ec。但为此你得让詹金斯接电话。
发布于 2019-03-11 06:34:00
要从coverage.ec文件中获取覆盖率,只需将其重命名为coverage.exec,并使用“显示覆盖率数据”选项打开它
“显示覆盖率数据”可以在Android中的"Analyze“选项下找到。
用Android 3.3验证了这一点
https://stackoverflow.com/questions/29039751
复制相似问题