Software_programming_TestNG

2019-10-04

key points:


 

 ITestListner 

 


 

 

TestNG ITestListener 

 1 package framework.testNG.Listener;
 2 
 3 import org.testng.ITestContext;
 4 import org.testng.ITestResult;
 5 
 6 public interface ITesListener {
 7 
 8     // 每次调用测试之前都会调用
 9     void onTestStart(ITestResult var);
10 
11     // 每次测试成功时调用
12     void onTestSccess(ITestResult var);
13 
14     // 每次测试失败时调用
15     void onTestFailure(ITestResult var);
16 
17     // 每次测试跳过时调用
18     void onTestSkipped(ITestResult var);
19 
20     // 测试失败且满足 successPercentage 属性时调用
21     void onTestFailedButWithinSuccessPercentage(ITestResult var);
22 
23     // 实例化测试类之后和在调用任何配置方法之前调用
24     void onStart(ITestContext var);
25 
26     // 在运行所有测试并调用所有配置方法之后调用
27     void onFinish(ITestContext var);
28 
29 }

ITestListener 接口继承自 ITestNGListener 接口,实际应用过程中,一般使用 TestListenerAdapter, 因为 ITestListener中的方法在 TestListenerAdapter 中给了默认实现,现在只需继承 TestListenerAdapter ,重写关注的方法即可。

 



以编程方式

import framework.testNG.Listener.TestListenerAdapterImpl;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;

public class programTest {

    public static void main(String[] args){

        TestNG testNG = new TestNG();
        testNG.setTestClasses(new Class[]{TestListenerWithLog.class});
        TestListenerAdapter listener = new TestListenerAdapterImpl();
        testNG.addListener(listener);
        testNG.run();
    }
}

 

 实现 IHookable ,通常用在在进行testCase前,先做逻辑验证,例如权限等规则。

 

 2019-10-04 21:11:29

实现 TestListenerAdapter, 结合 log4j2 记录日志

note: 设置的 Listener 是对所有 test 生效的, 如果需要在特定范围了特殊设置,需要code 逻辑。

note: 如果program 了 listener ,继而又在某个 Test class 上引用 @Listeners({TestListenerAdapterImpl.class}) , 则会重复输出 log

 

 

attention:

Listener 中要将 ITestResult 中调用 TestCase 名称和 TestMethod 名字传出,

在 log4j2.xml  patternLayout 的 %l  会输出 Listener 自身的类名和方法。

 

 

posted @ 2019-10-04 15:37  君子之行  阅读(3)  评论(0编辑  收藏  举报