我使用的是一种移动测试工具,可以在一个名为coverage.ec的文件上生成覆盖率报告(使用EMMA)。该文件不可读,但我想知道如何访问它包含的信息。我只需要阅读一般的覆盖百分比。
答案 0 :(得分:0)
我情况非常相似。我有一个coverage.ec文件,我不知道如何将其转换为可读报告。 This article was very helpful for me.
那里有比你需要的更多的信息,但对我来说,重要的是将它添加到build.gradle:
apply plugin: 'jacoco'
def coverageSourceDirs = [
'src/main/java',
'src/debug/java']
task jacocoTestReport(type : JacocoReport, dependsOn : 'testDebugUnitTest') {
group = 'Reporting'
description = 'Generate JaCoCo coverage reports'
reports {
xml.enabled = true
html.enabled = true
}
classDirectories = fileTree(
dir : 'build/intermediates/classes/debug',
excludes : [
'**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/*$ViewBinder*.*',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*RealmProxy.*',
'**/*ColumnInfo.*',
'**/*RealmModule*.*',
'**/AutoValue_*.*',
'**/Dagger*.*',
'**/*Module_Provide*Factory.*',
'**/*_Factory.*',
'**/*_MembersInjector.*',
'**/*_LifecycleAdapter.*'
]
)
sourceDirectories = files(coverageSourceDirs)
executionData = fileTree(
dir : "$buildDir",
include : [ 'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec' ]
)
doFirst {
files('build/intermediates/classes/debug').getFiles().each { file ->
if (file.name.contains('$$')) {
file.renameTo(file.path.replace('$$', '$'))
}
}
}}
从这里开始,我将coverage.ec文件放在app / build / outputs / code-coverage / connected / coverage.ec中。
之后,我运行了jacocoTestReport gradle任务,它为我的单元测试和来自app / build / reports / jacoco / jacocoTestReport / html / index.html中的coverage.ec文件的报告生成合并报告
希望这有帮助!