reportNG打包

前言

工作中会对java的类进行接口测试,选用的testNG测试框架,但是testNG自带的测试报告实在是不美观,且功能较差,便选用reportNG来生成测试报告。不过reportNG并不支持中文,且生成的报告页面也需再优化一点,但是reportNG目前已不再更新,最后的版本为1.1.4版本,所以很多人选择修改reportNG代码,定制reportNG。自己在网上也搜了不少资料去修改reportNG源代码,但最后卡在生成的jar包无法用,然后花了上午一小会时间研究了下,搞定打包。看到网上很多人在其他人的文章下留言问怎么打包reportNG,所以这里就分享下。

定制reportNG
reportng-master/
├── CHANGELOG.txt
├── LICENSE.txt
├── NOTICE.txt
├── README.txt
├── build.xml
├── etc
│   ├── intellij
│   ├── sample-testng.xml
│   ├── sample2-testng.xml
│   └── testng.xml
├── lib
│   └── compiletime
└── reportng
    ├── lib
    ├── pom.xml
    ├── reportng.iml
    └── src

7 directories, 10 files

我们要修改的,仅仅是pom.xml所在的reportng目录下的maven工程。

  • 修改maven工程目录
    源码中的maven工程目录如下:
reportng/
├── lib
│   └── runtime
│       └── velocity-dep-1.4.jar
├── pom.xml
├── reportng.iml
└── src
    ├── css
    │   └── hudsonesque.css
    └── java
        ├── main
        ├── resources
        └── test

8 directories, 4 files

可见,main目录处于/src/java目录下。而maven打包是编译和打包main目录下的java类文件,要求的目录格式为/src/main/java,所以改变源码的目录格式为如下格式:

reportng/
├── lib
│   └── runtime
│       └── velocity-dep-1.4.jar
├── pom.xml
├── reportng.iml
└── src
    ├── main
    │   ├── css
    │   ├── java
    │   └── resources
    └── test
        └── org

9 directories, 3 files
  • 解决中文乱码
    修改AbstractReporter类中的generateFile方法如下:


    解决中文乱码

    其他可定制修改处,可自行网上搜资料,这里不再写。

打包jar包
  • 修改pom文件:
    设置版本号,这里设置为1.1.5:
<modelVersion>4.0.0</modelVersion>
  <name>ReportNG</name>
  <groupId>org.uncommons</groupId>
  <artifactId>reportng</artifactId>
  <version>1.1.5</version>
  <packaging>jar</packaging>
  <url>https://reportng.dev.java.net/</url>

因为原文件中的testng版本号太低了,编译打包会失败,所以修改为较高的版本,这里设置为6.10版本:

    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.10</version>
    </dependency>
  • mvn package生成jar包


    IDEA中maven package

    生成jar包入如下:

lilinfeng@lilinfengdeMacBook-Air:~/llf_code/llf_java/reportng-master/reportng/target$ ll
total 72
drwxr-xr-x  3 lilinfeng  staff    102  1 23 23:50 classes
drwxr-xr-x  3 lilinfeng  staff    102  1 23 23:50 maven-archiver
drwxr-xr-x  3 lilinfeng  staff    102  1 23 23:50 maven-status
-rw-r--r--  1 lilinfeng  staff  35906  1 23 23:50 reportng-1.1.5.jar
引用生成的reportNG jar包
  • 新建maven工程
    工程lib目录下放置上一步生成的jar包:
IvanliTest/
├── IvanliTest.iml
├── lib
│   └── reportng-1.1.5.jar
├── pom.xml
├── src
│   ├── main
│   └── test
└── target
    ├── classes
    ├── generated-test-sources
    ├── maven-status
    ├── surefire-reports
    └── test-classes

10 directories, 3 files

pom文件配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>Hello</groupId>
    <artifactId>IvanliTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.uncommons</groupId>
            <artifactId>reportng</artifactId>
            <version>1.1.5</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/reportng-1.1.5.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>4.0</version>
        </dependency>
        </dependencies>
    <build>
        <plugins>
            <!-- 添加插件,添加ReportNg的监听器,修改最后的TestNg的报告 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <properties>
                        <property>
                            <name>usedefaultlisteners</name>
                            <value>false</value>
                        </property>
                        <property>
                            <name>listener</name>
                            <value>org.uncommons.reportng.HTMLReporter,
                                org.uncommons.reportng.JUnitXMLReporter</value>
                        </property>
                    </properties>
                    <workingDirectory>target/</workingDirectory>
                    <suiteXmlFiles>
                        <!--<suiteXmlFile>testng.xml</suiteXmlFile>-->
                    </suiteXmlFiles>
                    <forkMode>never</forkMode>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <encoding>utf-8</encoding>
                    <fork>true</fork>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

测试代码如下:

import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.Test;

public class testOne {
    @Test
    public void testCase1(){
        String exp = "1";
        String act = "1";
        Reporter.log("expect: " + exp + ", actual: " + act);
        Assert.assertEquals(exp, act);
    }

    @Test
    public void testCase2(){
        String exp = "1";
        String act = "2";
        Reporter.log("expect: " + exp + ", actual: " + act);
        Assert.assertEquals(exp, act);
    }
}
  • 执行测试
    mvn -Dtest=testOne test
    生成报告如下:


    overview

    output

    可见,报告已支持中文,即我们生成的reportNG jar包是可用的。
    希望本篇生成jar包的说明可以帮助一些想定制reportNG的同学们。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,501评论 6 544
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,673评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,610评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,939评论 1 318
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,668评论 6 412
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 56,004评论 1 329
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 44,001评论 3 449
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,173评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,705评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,426评论 3 359
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,656评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,139评论 5 364
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,833评论 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,247评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,580评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,371评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,621评论 2 380

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,923评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,829评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,761评论 25 708
  • 风起云涌,树叶哗哗响起,提醒人们阵雨就要来了。李杉杉被风推着走在学校的林荫大道上,她已经放弃凌乱的头发了。 有东西...
    今觉读书乐阅读 306评论 0 0
  • 边想边回了家,唉~,不想了,出去玩儿!我连忙换了身衣服,长发随意的披着,如疾风一般的跑了出去。 “晓晓!出来玩!篮...
    千雪落阅读 250评论 0 4