testng日志 TestListenerAdapter
TestListenerAdapter,空方法实现 ITestListener
创建自定义日志记录类
创建另一个新的类名为 CustomListener.java 在 C:\ > TestNG_WORKSPACE
import org.testng.ITestResult;
import org.testng.TestListenerAdapter; public class CustomListener extends TestListenerAdapter{
private int m_count = 0; @Override
public void onTestFailure(ITestResult tr) {
log(tr.getName()+ "--Test method failed\n");
} @Override
public void onTestSkipped(ITestResult tr) {
log(tr.getName()+ "--Test method skipped\n");
} @Override
public void onTestSuccess(ITestResult tr) {
log(tr.getName()+ "--Test method success\n");
} private void log(String string) {
System.out.print(string);
if (++m_count % 40 == 0) {
System.out.println("");
}
} }
创建测试案例类
创建一个Java类为 SampleTest.java 在 C:\ > TestNG_WORKSPACE
import 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 andtestMethodThree将通过执行时,
而testMethodTwo是通过一个falseBoolean值断言失败。 assertTrue方法,该方法用于在测试中的真值条件。
创建 testng.xml
创建一个文件 testng.xml C:\ > TestNG_WORKSPACE 来执行测试用例
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Simple Logger Suite">
<listeners>
<listener class-name="CustomListener" />
</listeners> <test name="Simple Logger test">
<classes>
<class name="SampleTest" />
</classes>
</test>
</suite>
编译SampleTest,CustomListener类使用javac
C:\TestNG_WORKSPACE>javac CustomListener.java SampleTest.java
现在运行 testng.xml.
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
验证输出
testMethodOne--Test method success
testMethodTwo--Test method failed
testMethodThree--Test method skipped ===============================================
Simple Logger Suite
Total tests run: 3, Failures: 1, Skips: 1
===============================================
我们创建了一个自定义logger类,其中实现ITestListener接口和依附于作为监听器的TestNG测试套件。
TestNG的测试开始时,测试失败,在测试成功,所以这个监听器类的方法调用。
可以实现多个听众,并将其添加到测试套件执行,TestNG的将调用所有侦听器连接到测试套件。
当我们需要看到的连续状态的测试执行,测试时得到执行,主要用于记录监听器。
testng日志 TestListenerAdapter的更多相关文章
- 《手把手教你》系列基础篇(八十四)-java+ selenium自动化测试-框架设计基础-TestNG日志-上篇(详解教程)
1.简介 TestNG还为我们提供了测试的记录功能-日志.例如,在运行测试用例期间,用户希望在控制台中记录一些信息.信息可以是任何细节取决于目的.牢记我们正在使用Selenium进行测试,我们需要有助 ...
- testng日志 ITestListener
上一节我们写一个日志类 extends TestListenerAdapter ----------TestListenerAdapter 是 ITestListener 实现的一个类 这一节,我 ...
- testng日志和报告
TestNG是通过 Listeners 或者 Reporters 生成测试报告. Listeners,即 org.testng.ITestListener 的实现,能够在测试执行过程中发出各种测试结果 ...
- 《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)
1.简介 TestNG为日志记录和报告提供的不同选项.现在,宏哥讲解分享如何开始使用它们.首先,我们将编写一个示例程序,在该程序中我们将使用 ITestListener方法进行日志记录. 2.Test ...
- 单篇长文TestNG从入门到精通
简介 TestNG是Test Next Generation的缩写,它的灵感来自于JUnit和NUnit,在它们基础上增加了很多很牛的功能,比如说: 注解. 多线程,比如所有方法都在各自线程中,一个测 ...
- 基于WebDriver&TestNG 实现自己的Annotation @TakeScreenshotOnFailure
相信用过Selenium WebDriver 的朋友都应该知道如何使用WebDriver API实现Take Screenshot的功能. 在这篇文章里,我主要来介绍对failed tests实现 t ...
- (转)testng对失败时截图处理
写这篇微博之前,自动化测试代码中有对于失败测试截图的功能,但是却散落在各个catch语句块中.不便于以后的扩展和维护,AOP思想里说明是面向切面编程,把公共的组件提取出来,可以单独修改维护. 但是直到 ...
- Java自动化测试框架-08 - TestNG之并行性和超时篇 (详细教程)
一.并行性和超时 您可以指示TestNG以各种方式在单独的线程中运行测试. 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: 二.并 ...
- selenium遇到异常自动截图
最近要在框架中添加case失败时,要自动截图,主要又两种方式,思想都是在抛异常的时候,捕获到异常,并作页面截图处理.今天坐下总结. 一.第一种方式,重写onException方法 只针对webdriv ...
随机推荐
- mybatis由浅入深day02_8spring和mybatis整合
8 spring和mybatis整合 8.1 整合思路 需要spring通过单例方式管理SqlSessionFactory.mapper接口. spring和mybatis整合生成代理对象,使用Sql ...
- POJ 1018 Communication System(树形DP)
Description We have received an order from Pizoor Communications Inc. for a special communication sy ...
- Android 中如何从一个App启动另外一个App(如启动支付界面、启动地图界面、应用商场下载App等场景)
假定两个App,分别是A和B,当A运行某个功能需要启动B,一种是启动B应用,一种直接进入B的某个Activity.搜了很多资料,没有一个完整的.下面就A--Android5.1.1.B--Androi ...
- ArcGIS 要素合并
1.选择工具 2.选择输入要素.输出要素.按照什么字段进行合并 3.查看融合结果 4.GP工具-创建GP模型 拖入“融合”工具,设置融合的参数,如下图: 右击左边椭圆,勾选 模型参数 右击右边椭圆,勾 ...
- GIS-013-Cesium Terrain 数据生成
一.Python 1.修改Python脚本文件 if __name__=='__main__': #sys.argv = ['F:\\000_Terrain\\T7-gdal2srtmtiles-de ...
- SDWebImage使用,图片加载和缓存
本文转载至 http://blog.163.com/wzi_xiang/blog/static/659829612012111402812726/ 清除缓存: [[SDImageCache s ...
- C++ 在继承中使用virtual
使用virtual:如果方法是通过引用类型或指针而不是对象调用的,它将确定使用哪一种方法.如果没有使用关键字irtual,程序将根据引用类型或指针类型选择方法:如果使用了irtual,程序将根据引用或 ...
- AndroidのUI体验之上拉下拉
1.ScrollView监测是否滚动到顶部或底部 onScrollChanged(); 滚动到顶部判断:getScrollY() == 0 滚动到底部判断:getChildAt(0).getMeasu ...
- poj_1204 Trie图
题目大意 给出一个RxC的字符组成的puzzle,中间可以从左向右,从右到左,从上到下,从下到上,从左上到右下,从右下到左上,从左下到右上,从右上到左下,八个方向进行查找字符串. 给出M个字符 ...
- c++11——lambda表达式
lambda表达式 函数式编程的一个语法,有如下优点: (1)声明式编程风格:就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或者函数对象.以更直接的方式写程序,好的可读性和可维护性. (2) ...