Testng生成的测试报告乱码解决办法

来源:互联网 发布:广州石井淘宝村 编辑:程序博客网 时间:2024/06/05 06:11

1,Testng生成报告乱码解决方案

乱码是程序编码不统一,比如java源代码是utf-8,编译是gbk,这时会乱码。

如果源代码utf-8,编译utf-8,默认会生成gbk格式的报告,ant配置testng标签里加<jvmarg value="-Dfile.encoding=UTF-8"/> ,具体build文件配置如下:

<project name="AntTest" default="run" basedir=".">
<echo message="import libs"/>
<path id="run.classpath">
<fileset dir="D:/Program Files/Extralib"> <!-- 项目需要引入的jar包所在目录 -->
<include name="*.jar"/>
</fileset>
</path>
<taskdef name="testng" classname="org.testng.TestNGAntTask" classpathref="run.classpath"/>
<!--  默认target是run,运行ant命令直接执行run  -->
<echo message="The base dir is: ${basedir}"/>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<!--  编译java文件依赖clean  -->
<mkdir dir="build/classes"/>
<javac srcdir="src" encoding="GBK" destdir="build/classes" classpathref="runpath"/> <!-- 因为我的代码编码是GBK,所以编译也用GBK -->
</target>
<path id="runpath">
<path refid="run.classpath"/>
<pathelement location="build/classes"/>
</path>
<target name="run" depends="compile">
<testng classpathref="runpath" outputDir="test-output" haltOnfailure="true" useDefaultListeners="false" listeners="org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter,org.testng.reporters.FailedReporter">
<xmlfileset dir="${basedir}\src" includes="testng.xml"/>
<sysproperty key="org.uncommons.reportng.title" value="自动化测试报告"/>
<jvmarg value="-Dfile.encoding=UTF-8"/>  <!-- 定义生成报告的编码 -->
</testng>
</target>
</project>

2、如果转化报告格式报路径含有空格时报%20的错误,找不到路径,多半是变量里面加变量如base.dir是根目录,report.dir是基于base.dir定义的,两层变量,就找不到路径了。
所以testngXslt转换后生成报告的目录expression不能用${testreport.dir}而是${basedir}/testreport/
<target name="transreport">
<xslt in="${testreport.dir}/testng-results.xml" style="${testreport.dir}/testng-results.xsl" out="${testreport.dir}/testreport.html ">
<param name="testNgXslt.outputDir" expression="${basedir}/testreport/" />
<classpath refid="run.classpath" />
</xslt>
</target>
0 0