从 coverage.ec 文件中获取覆盖范围信息



我正在使用一种移动测试工具,该工具在一个名为 coverage.ec 的文件(使用EMMA)上生成覆盖率报告。该文件不可读,但我想知道如何访问它包含的信息。我只需要阅读一般的覆盖率。

我的情况非常相似。 我有一个 coverage.ec 文件,我不知道如何将其转换为可读的报告。 这篇文章对我很有帮助。

那里的信息比你可能需要的要多得多,但对我来说,重要的部分是将其添加到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中。

之后,我运行了 jacoTestReport gradle 任务,它为我的单元测试和位于 app/build/reports/jacoco/jacocoTestReport/html/index.html 中的 coverage.ec 文件生成合并报告

。希望这有帮助!

最新更新