ReportNG 报告中文处理

转载自https://blog.51cto.com/11565528/2082784

一、说明 :当前ReportNG 最新是1.1.4版本,这个版本不支持中文报告,在testng.xml中,如果配置了有中文的项目名称等,在测试报告报告中会乱码
二、原因解析:
在1.1.4版本的包:reportng-1.1.4.jar中 ,有一个类:AbstractReporter中的generateFile方法中需要调整源码生成报告时的编码处理不兼容汉字
三、处理办法:
第一:将AbstractReporter中的generateFile方法源码修改为如下:
(可以使用jd-gui.exe打开,也可以使用IDE打开)

protected void generateFile(File file, String templateName, VelocityContext context)
throws Exception
{
    OutputStream out = new FileOutputStream(file);
    Writer writer = new BufferedWriter(new OutputStreamWriter(out, "utf-8"));
    try
    {
        Velocity.mergeTemplate(this.classpathPrefix + templateName, "UTF-8", context, writer);
        writer.flush();
    }
    finally
    {
        writer.close();
    }
}

第二:将修改后的jar包重命名为:reportng-1.1.5.jar(最好是先复制1.1.4的jar包在修改,最后重命名复制修改的那个jar文件,保证之前1.1.4版本不被修改,备份在那里)
第三:将修改后重命名的reportng-1.1.5.jar 文件重新编译成1.1.5版本
编译方法:
1、cmd开启命令行,进入到maven的目录的bin路径下
2、执行命令:
mvn install:install-file -DgroupId=org.uncommons -DartifactId=reportng -Dversion=1.1.5 -Dpackaging=jar -Dfile=E:\java_Project\9.15\java\RepoterNG1.1.5\reportng-1.1.5.jar
3、说明:编译命令的前面三个参数分别对应的就是 pom.xml中配置
reportng依赖的三个标签参数;
Dpackaging 参数表示是打包方式;
Dfile是指定被编译的源文件(保存路径+文件名)
第四:修改项目中maven的pom.xml依赖配置为修改后的1.1.5版本(当前已经将修改后1.1.5版本的reportng-1.1.5.jar包存放到了项目的resource目录中,在后续使用的时候,直接将这个包手动的导入到项目的库中即可)

第五:重新执行:
命令:mvn test
或者IDE 项目中右键pom.xml——>run maven——> test
第六:进入target目录中,打开surefire-reports——>html——>index.html
中文将不再乱码

猜你喜欢

转载自blog.csdn.net/df0128/article/details/88051063