TestNG 原理解析

目录

 

学习资料

关于 Case 结果


学习资料

https://testng.org/doc/documentation-main.html#introduction

源码下载

$ git clone git://github.com/cbeust/testng.git

$ cd testng

$ ./build-with-gradle

关于Case结果获取

实现接口org.testng.IReporter

最终获取 Case result list,需等待所有 test suite 运行完,才能获取最终报告。

比如需要自定义报告样式,为 PDF 格式或其他定制格式

实现接口org.testng.ITestListener 

实时获取 Case 运行结果,并可自定义 success、fail、skip 之后的动作

 

关于自定义测试方法执行前后 AOP

Hook 方式

如源码,提供一个 run 接口,用于测试方法执行前和后提供了切入点。相当于 AOP 中 Around,在 Test Case 执行前后,做一些自定义操作。

package org.testng;

public interface IHookable extends ITestNGListener {

void run(IHookCallBack var1, ITestResult var2);

}
@Override
    public void run(IHookCallBack iHookCallBack, ITestResult result) {
        // do something before test case run

        iHookCallBack.runTestMethod(result);

        // do something after test case run
    }

IInvokedMethodListener方式

如源码,提供 beforeInvocation 和 afterInvocation,可在测试方法执行前后,做一些自定义操作。

package org.testng;

public interface IInvokedMethodListener extends ITestNGListener {
    default void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
    }

    default void afterInvocation(IInvokedMethod method, ITestResult testResult) {
    }

    default void beforeInvocation(IInvokedMethod method, ITestResult testResult, ITestContext context) {
    }

    default void afterInvocation(IInvokedMethod method, ITestResult testResult, ITestContext context) {
    }
}
 

 

发布了2 篇原创文章 · 获赞 1 · 访问量 3083
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览