首页 文章

在onTestSuccess / onTestFailure之前调整运行@AfterMethod

提问于
浏览
0

我想知道是否有某种方法来调整TestNG,以便首先执行@AfterMethod注释的方法,然后在测试侦听器运行中执行onTestSuccess / onTestFailure方法 .

在我的项目中,由@AfterMethod注释的方法具有为每个测试方法打印响应主体的逻辑 . 并且onTestSuccess / onTestFailure方法具有打印消息的逻辑(例如“测试完成”) . 我不想让代码在我的项目中的每个测试类的@AfterMethod中打印此消息 .

问题是,首先显示消息“测试完成”,然后打印响应体,根据TestNG设计,这可能是正确的,但这是我想调整的内容 .

2 回答

  • 0

    当前实现首先运行侦听器,然后运行方法之前/之后 .

    目前,您无法更改侦听器的顺序,并且方法之前/之后不是侦听器 .

  • 0

    如果阻止在 @AfterMethod 结尾处添加自定义消息的主要问题只是您想要避免的全局重构,那么我就是一个 AspectJ 示例:

    @Slf4j
    @Aspect
    public class MessageAspect {
    
        @After("execution(@org.testng.annotations.AfterMethod * target.package.path..*.*(..))")
        public void print(final JoinPoint joinPoint) {
            log.info("Test completed");
        }
    }
    

    在您的情况下使用AOP的主要优点是使用0重构的最小努力 .

相关问题