reportNG打包

作者: Ivanlfli | 来源:发表于2018-01-24 00:21 被阅读124次
前言

工作中会对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的同学们。

相关文章

网友评论

    本文标题:reportNG打包

    本文链接:https://www.haomeiwen.com/subject/bwneaxtx.html