TestNG 学习总结 - 测试结果报告 - 自定义记录器(十六)
2016-04-21 09:21
573 查看
在本节中,我们将介绍一个例子,编写自定义记录器和TestNG的方法。要编写一个定制的记录器类,我们的扩展类应实现IReporter接口。让我们继续前进,并创建一个示例使用自定义的记录器。
创建一个Java类为 SampleTest.java 在 C:\ > TestNG_WORKSPACE
上述测试类的包含三个测试方法,其中testMethodOne 和 testMethodThree将通过在执行时,而testMethodTwo由通过一个falseBoolean的值Assert.assertTrue方法,它是用于在测试中的真值条件失败。
创建另一个新的类名为 CustomReporter.java 在 C:\ > TestNG_WORKSPACE
前面的的类实现org.testng.IReporter 接口。它实现了IReporter接口定义的方法GenerateReport。这个方法有三个参数:
第一个是xmlSuite,这是TestNG的测试XML正在执行中提到的列表套件
第二个是套件,其中包含一套测试执行后信息,该对象包含了所有的信息包,类,测试方法和测试执行结果。
第三的outputDirectory,报告将产生的输出文件夹路径,其中包含的信息。
创建一个文件testng.xml 在 C:\ > TestNG_WORKSPACE 来执行测试用例
编译SampleTest,CustomReporter类使用javac
运行 testng.xml.
验证输出
前面的例子显示了一个简单的自定义报告器,打印的数量在控制台上对每个套件包含在上述的测试执行失败,通过跳过测试。报告器主要是用于测试的执行,以生成最终的报告。扩展程序可以被用来生成XML,HTML,CHM,CSV或文本格式的文件,根据报告要求。
创建测试案例类
创建一个Java类为 SampleTest.java 在 C:\ > TestNG_WORKSPACEimport org.testng.Assert; import org.testng.annotations.Test; public class SampleTest { @Test public void testMethodOne(){ Assert.assertTrue(true); } @Test public void testMethodTwo(){ Assert.assertTrue(false); } @Test(dependsOnMethods={"testMethodTwo"}) public void testMethodThree(){ Assert.assertTrue(true); } }
上述测试类的包含三个测试方法,其中testMethodOne 和 testMethodThree将通过在执行时,而testMethodTwo由通过一个falseBoolean的值Assert.assertTrue方法,它是用于在测试中的真值条件失败。
创建自定义报告类
创建另一个新的类名为 CustomReporter.java 在 C:\ > TestNG_WORKSPACEimport java.util.List; import java.util.Map; import org.testng.IReporter; import org.testng.ISuite; import org.testng.ISuiteResult; import org.testng.ITestContext; import org.testng.xml.XmlSuite; public class CustomReporter implements IReporter{ @Override public void generateReport(List xmlSuites, List suites, String outputDirectory) { //Iterating over each suite included in the test for (ISuite suite : suites) { //Following code gets the suite name String suiteName = suite.getName(); //Getting the results for the said suite Map suiteResults = suite.getResults(); for (ISuiteResult sr : suiteResults.values()) { ITestContext tc = sr.getTestContext(); System.out.println("Passed tests for suite '" + suiteName + "' is:" + tc.getPassedTests().getAllResults().size()); System.out.println("Failed tests for suite '" + suiteName + "' is:" + tc.getFailedTests().getAllResults().size()); System.out.println("Skipped tests for suite '" + suiteName + "' is:" + tc.getSkippedTests().getAllResults().size()); } } } }
前面的的类实现org.testng.IReporter 接口。它实现了IReporter接口定义的方法GenerateReport。这个方法有三个参数:
第一个是xmlSuite,这是TestNG的测试XML正在执行中提到的列表套件
第二个是套件,其中包含一套测试执行后信息,该对象包含了所有的信息包,类,测试方法和测试执行结果。
第三的outputDirectory,报告将产生的输出文件夹路径,其中包含的信息。
创建 testng.xml
创建一个文件testng.xml 在 C:\ > TestNG_WORKSPACE 来执行测试用例<?xml version="1.0" encoding="UTF-8"?> <suite name="Simple Reporter Suite"> <listeners> <listener class-name="CustomReporter" /> </listeners> <test name="Simple Reporter test"> <classes> <class name="SampleTest" /> </classes> </test> </suite>
编译SampleTest,CustomReporter类使用javac
C:\TestNG_WORKSPACE>javac CustomReporter.java SampleTest.java
运行 testng.xml.
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
验证输出
=============================================== Simple Reporter Suite Total tests run: 3, Failures: 1, Skips: 1 =============================================== Passed tests for suite 'Simple Reporter Suite' is:1 Failed tests for suite 'Simple Reporter Suite' is:1 Skipped tests for suite 'Simple Reporter Suite' is:1
前面的例子显示了一个简单的自定义报告器,打印的数量在控制台上对每个套件包含在上述的测试执行失败,通过跳过测试。报告器主要是用于测试的执行,以生成最终的报告。扩展程序可以被用来生成XML,HTML,CHM,CSV或文本格式的文件,根据报告要求。
相关文章推荐
- Project Web App Feature无法开启的解决方案
- 第8周项目1 数组做数据成员 工资类(2)
- C++实验四—乘法口诀表
- c++实验4 项目一 1000以内所有偶数之和
- webapi Task
- 有没有一段代码,让你觉得人类的智慧也可以璀璨无比?
- JAVA 部分资料下载
- SpringMVC源码剖析(二)- DispatcherServlet的前世今生
- MySQL innobackupex全量备份恢复
- MySQL与MongoDB的操作对比,以及区别
- android之使用signapk打包成系统应用,获取系统权限
- 简单的滑动验证
- C++实验4——乘法口诀表
- java内存回收算法(分代收集)
- 浅谈mvc
- javascript笔记——jQuery插件开发的几种方式
- gcode类库的实现
- Eclipse转成Android Studio项目进行多渠道打包
- SQL Server 触发器
- 友元类