移动测试基础 有关 Jacoco 报告生成中文乱码问题

淼淼淼 · April 19, 2017 · Last by 陈恒捷 replied at May 16, 2017 · 2315 hits
  • 有关Jacoco报告中的中文乱码问题
  • 通过task生成报告,报告中出现了中文乱码,怎么解决?
  • 附task代码块:

    task jacocoTestReport(type: JacocoReport) {
    group = "Reporting"
    description = "Generate Jacoco coverage reports after running tests."
    reports {
    xml.enabled = true
    html.enabled = true
    }
    classDirectories = fileTree(
    dir: './build/intermediates/classes/debug',
    excludes: ['**/R*.class',
    '**/*$InjectAdapter.class',
    '**/
    *$ModuleAdapter.class',
    '**/*$ViewInjector*.class'
    ])
    sourceDirectories = files(coverageSourceDirs)
    executionData = files("$buildDir/outputs/code-coverage/connected/coverage.ec")

    doFirst {
    new File("$buildDir/intermediates/classes/").eachFileRecurse { file ->
    if (file.name.contains('$$')) {
    file.renameTo(file.path.replace('$$', '$'))
    }
    }
    }
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 5 条回复 时间 点赞

bulid文件里的编码格式要和代码的编码格式一致

niu 回复

嗯。感谢回复。我之前也觉得可能是gradle编码问题,首先我project encoding都是utf-8,我在build里面设置了:
tasks.withType(JavaCompile) {

options.encoding = "UTF-8"

} 或者在gradle.bat里面设置:set DEFAULT_JVM_OPTS="Dfile.encoding=UTF-8"
但是重新执行task任然没有解决.😭

之前也踩了这个坑,原因是我们源码打包是在 mac 上做的,但生成覆盖率报告改成了 windows ,默认编码不一样。

修改方案:在 gradlew jacocoTestReport 命令直接添加指定编码的参数,即改为 gradlew -Dfile.encoding=UTF-8 jacocoTestReport

淼淼淼 #5 · May 16, 2017 作者
陈恒捷 回复

感谢回复!亲测有效解决!由于没有使用*gradle wrapper *所以运行的gradle -Dfile.encoding=UTF-8 jacocoTestReport
一万个赞!!👍 👍

淼淼淼 关闭了讨论 16 May 11:51
淼淼淼 重新开启了讨论 16 May 11:52
淼淼淼 回复

哈哈,能解决你们的问题就好。我们当初也在这个问题上卡了2-3天,尝试了很多办法才解决的。

淼淼淼 关闭了讨论 25 May 10:07
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up