【一条龙服务】IDEA-reportng替换testng报告过程,以及打成jar包报错处理

开始做报告了!
遇到这个问题卡了半天吧,遇到各种问题,可能因为其他人都比较顺利,所以看了各种帖子最后才成功。私以为笔者遇到的问题算是比较多的,所以把所有的整理一下,希望可以帮助大家更顺利完成。
注:偷懒的想要个带饼状图的报告,代码地址给你一个:带饼状图报告
如果懒得真不想动的,这里是一个带饼状图、中文显示的jar包拿去吧
提取码:xpxj
如果用这个jar包,一定在pom.xm文件中,加入以下依赖:

 <dependency>
            <groupId>velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.4</version>
</dependency>

想自己练练手的,可以慢慢看。
先放个效果图(不带饼状图的)
在这里插入图片描述
下面开始操作:

1、下载reportng源码

注意:是源码,笔者当时傻了吧唧拿着jar包打开来改,全是锁住一脸懵逼。
源码地址:https://github.com/dwdyer/reportng
在这里插入图片描述
根据你自己的版本号下载对应的源码,笔者是1.1.4,选择好后,点击下载(download)。

2、用idea导入源码,配置环境

1、编码导入后,记得设置相应的环境,根据自己的环境来,笔者是jdk1.8。
在这里插入图片描述
2、修改pom.xml文件
(1)这里据说要修改一下版本,反正就是比你下载下来的高就可以,我写的是1.1.5
在这里插入图片描述
(2)修改testng版本信息,没有的就加上这个。
根据你项目本来依赖的testng的jar包版本来(我是6.14.3):

  <dependencies>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.14.3</version>
    </dependency>
    <dependency>

3、修改代码,实现自定义报告

1、修改报告的输出目录
打开HTMLReporter.java,把generateReport方法的outputDirectoryName参数赋值成你想输出的文件夹。

 outputDirectoryName="AutoTest_reports";

在这里插入图片描述
2、解决编码乱码问题
修改源文件的AbstractReporter.java
在这里插入图片描述

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

3、更改报告的方法排列顺序,按照方法的执行先后顺序来进行排序的
修改源文件TestResultComparator.java

  public int compare(ITestResult result1, ITestResult result2)
    {
//        return result1.getName().compareTo(result2.getName());
        int longresult2 = 0;
        if(result1.getStartMillis()<result2.getStartMillis()) {
            longresult2 = -1;
        }else {
            longresult2 = 1;
        }
        return longresult2;

    }

在这里插入图片描述

4、更改输出报告的样式
在文件reportng.properties最后增加

oneclass.description=Description
oneclass.duration=Duration
oneclass.testdata=Data being used
oneclass.testresult=Test result
oneclass.screenshot=Screen shot
oneclass.additionalinfo=Additional Info

在这里插入图片描述然后根据需要可以修改results.html.vm文件
放在失败那里面,进行修改的

<tr>
<td colspan="1" class="group">$testClass.name</td>
<td colspan="1" class="group">$messages.getString("oneclass.duration")</td>
<td colspan="1" class="group">$messages.getString("oneclass.testresult")</td>
</tr>

在这里插入图片描述
5、优化description的注释显示
测试用例添加 description的注释,能够实现对用例的说明,但是生成的html是鼠标划上才显示内容,很不方面查看。其实我们更需要的是让他直接显示出来,这样子我们更能够直观的知道这个是什么测试用例。
在这里插入图片描述
修改class-results.html.vm文件
将代码替换一下本来的即可,就是把描述放进内容里一起显示。

 <span class="description" title="$testResult.method.description">$testResult.name$testInstanceName ($testResult.method.description)</span>

在这里插入图片描述
6、优化显示通过、失败以及占比
修改reportng.properties文件,reportng.properties中的内容是键值对,修改后面的值为中文即可。(根据需要修改)
注:笔者这个地方存在编码问题,最后还是乱码,很多朋友但是正常这个原因后续更新。

passed=通过
failed=失败

在这里插入图片描述
7、关于生成饼状图的修改
笔者没有做这部分,可以参考一个可靠文章
reportng定制修改

4、生成jar包

找到build.xml文件,然后右击,找到Add as Ant Build File
在这里插入图片描述
双击:release
在这里插入图片描述
下面就是错误集锦:
1、编辑报错,显示需要更高版本的jdk
下载高版本的jdk,然后重新配置一下环境,具体配置可以看开头。
2、jar包release失败:
在这里插入图片描述
这个问题折腾笔者很久,毕竟警告报错,在build.xml文件里面都是红一片。
那么根据提示,先解决报错问题,修改上边关于编码乱码问题的代码。
将以前的

OutputStream out=new FileOutputStream(file);

修改为

FileOutputStream out=new FileOutputStream(file);

在这里插入图片描述
重新release一下,成功了!
在这里插入图片描述
3、通过ant构建
在这里插入图片描述
通知执行ant ,发现有错误,提示:无法找到org.uncommons.reportng.HTMLReporter里面的类文件,这里是因为没有把reportng的那几个jar包放到libs文件夹 中,放进去后,即可以正常执行ant。
在这里插入图片描述
4、用jenkins执行测试构建时,jenkins中测试报告可能显示不全,这里需要改变一下jenkins的启动方式:
默认方式为:java -jar jenkins.war
改为: java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
(笔者所做不涉及,放大神文章) http://www.cnblogs.com/xiaomingtx/p/5669798.html

5、将新jar包与项目关联

1、生成的jar包在源码下的release文件夹下面。
在这里插入图片描述
直接解压取到jar包,然后参考笔者这篇文章【简单易上手】maven如何依赖本地jar包?将新的jar包与项目关联,加到maven库中。
2、更改项目的pom.xml文件,配置testng.xml监听
首先是pom.xml文件

 <!--依赖reportNG 关联testNG-->
        <dependency>
            <groupId>org.uncommons</groupId>
            <artifactId>reportng</artifactId>
            <version>1.1.5</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.testng</groupId>
                    <artifactId>testng</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

修改testng.xml文件
在这里插入图片描述

    <listeners>
        <listener class-name="org.uncommons.reportng.HTMLReporter"/>
        <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
    </listeners>

3、测试用例配置监听
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、查看测试结果的时候到了

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39704682/article/details/87928267
今日推荐