用了testNg已经一年了,jenkins上生成的测试报告很方便,但是不知道具体是怎么生成的,捣鼓了一天终于整明白了,在这里记录一下,免得以后用到时候还得重新弄。
一、pom配置
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
</dependency>
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.0</version>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/main/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
<systemPropertyVariables>
<!-- <serviceProperty>src/main/resources/config.prop</serviceProperty>-->
</systemPropertyVariables>
<useSystemClassLoader>true</useSystemClassLoader>
<testFailureIgnore>true</testFailureIgnore>
<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>test-output/</workingDirectory>-->
<forkMode>once</forkMode>
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>
二、中文乱码问题
有两种方法解决问题:
1. 下载reportNg源码修改AbstractReporter类的generateFile方法,如下:
参考地址:https://www.jianshu.com/p/658ec96bc0f6
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();
}
}
2. 下载reportNg.jar,下载地址:http://pan.baidu.com/s/1pLdZdt5,密码:fctu
3. 无论哪种方法你得到的都是jar文件,需要安装到你的仓库才能在pom中应用。
打开cmd,执行命令: mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar ,居然报错了~~~
在idea的terminal内执行:mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=D:\reportng-1.1.4.jar,成功了~,但是不知道为啥上边的方法报错,求大神指导
4. 运行case中文不会乱码了
三、测试报告生成路径
1. mvn test生成报告路径是target目录下,如图:

2. 直接运行testng.xml生成测试报告的路径是,test-output目录
3. 因为在pom里配置了HTMLReporter和JUnitXMLReporter监听器,所以会生成xml和html两种测试报告,html更易于测试人员了解测试执行情况,以为大部分人都只关心执行失败的case。xml的测试报告便于开发人员做其他处理,获取想要的信息,个人理解~