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

用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了


你可能感兴趣的:(tomcat,android,IO,ant,report,tools)