Testng 7.x 和跨类优先级

问题描述 投票:0回答:1

我们有一个通过 testng 运行的大型测试集。该集中的一些方法设置了优先级,使它们最后运行,以提高效率。

这适用于 testng 6.x,但一旦我们升级到 testng 7.x,这个技巧就失效了。看起来 testng 7.x 中的优先级是用一个类处理的,而不是在整个测试套件中处理(因此 prio=999 的方法将在 testng 6.x 中最后运行,但可以在 testng 7 中该测试集的开头运行.x,只是因为 testng 首先选择类。)

如何在不降级testng的情况下恢复旧流程?

java java-8 testng rest-assured
1个回答
0
投票

首先想到的是使用IMethodInterceptor

您可以创建一个自定义侦听器,它将按优先级值对方法进行排序。

只需将此侦听器添加到您的 .XML 文件(或者如果您这样做,则以编程方式将其插入):

package listeners;

import org.testng.IMethodInstance;
import org.testng.IMethodInterceptor;
import org.testng.ITestContext;

import java.util.Comparator;
import java.util.List;

public class PriorityAnalyzer implements IMethodInterceptor {


    @Override
    public List<IMethodInstance> intercept(List<IMethodInstance> methods, ITestContext context) {
        methods.sort(Comparator.comparingInt(x -> x.getMethod().getPriority()));
        return methods;
    }


}
© www.soinside.com 2019 - 2024. All rights reserved.