[英]How to add IMethodInterceptor Listener to the testng suite programmatically without using <listener> tag in xml file
我已经在我的框架中实现IMethodInterceptor
侦听器,以便在运行时从Jenkins应用测试组。 我必须在所有测试 xml 中使用<listener>
标记来包含此侦听器。 这对我来说将是一项艰巨的任务。 我想通过 JAVA 本身来分配它。
我试过这个:
iTestContext.getSuite().addListener(new MethodInterceptorListener());
iTestContext.getSuite().addListener(new InvokedMethodListener());
这适用于InvokedMethodListener
但不适用于MethodInterceptorListener
。
InvokedMethodListener
的addListener()
方法不适用于MethodInterceptorListener
?iTestContext.getSuite().addListener(new MethodInterceptorListener());
这不起作用,因为IMethodInterceptor
类型的侦听器(以及少数其他类型)未在ISuite.addListener()
中处理。 而您可以向TestRunner
添加一个侦听器,它是ITestContext
的实现。
你可以试试下面的代码,它会工作的。
if(iTestContext instanceof TestRunner) {
((TestRunner) iTestContext).addListener(new MethodInterceptorListener());
}
如果您使用的是 java 16,请执行以下操作:
if(iTestContext instanceof TestRunner t) {
t.addListener(new MethodInterceptorListener());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.