emma 的coverage report 代码文件乱码的问题

文章详细介绍了使用Jenkins进行Android测试代码coverage时遇到日文乱码问题的解决方法,包括修改emma源代码和相关配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用jenkins进行android测试代码的coverage,生成出来bin里的coverage report中,代码文件中日文全是乱码,导致了coverage的显示也不太清楚,文件代码一长,根本无法知道哪些没有覆盖到。在网上找了一下午。最终解决。

最初是怀疑jenkins的设置。尝试了下面几项。都失败。

  1. build.xml中,设置report文件输出的编码。<property name="report.html.out.encoding" value="UTF-8" />
  2. 设置jenkins的起动参数。-Dfile.encoding=UTF-8    这里试了半天,最终是在tomcat的起动文件中设置成功

后来想直接在cmd中运行ant命令,结果还是同样的问题。说明跟jenkins无关。

最终解决办法,修改emma的源代码。 从网上下载下emma-2.0.5312-src.zip 修改下面的文件。编译打包,

  1. 从网上下载下emma-2.0.5312-src.zip http://pkgs.fedoraproject.org/repo/pkgs/emma/
  2. 修改core\java12\com\vladium\emma\report\html\ReportGenerator.java的embedSrcFile方法

修改前

in = new BufferedReader (new FileReader (srcFile), IO_BUF_SIZE);
修改后

java.io.InputStreamReader isr = new java.io.InputStreamReader(new java.io.FileInputStream(srcFile), m_settings.getOutEncoding ());
in = new BufferedReader (isr, IO_BUF_SIZE);

重新打包后,替换掉android-sdk\tools\lib 里的两个emma的jar文件。之后就OK了


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值