据我所知,方法拦截器可用于根据优先级构建运行方法列表。但是在我的项目方法中,拦截器运行来自每个测试类的测试方法。
例如,有两个类放在方法setTestClasses中。在第一类中有3种测试方法(具有相似的优先级)。在第二个中有一个(具有最高优先级)。在这种情况下,具有最高优先级的方法将运行最新的,因为方法拦截器将首先运行第一类的3个方法,其次运行第二类的方法。这是对的吗?
答案 0 :(得分:2)
拦截器做什么方法它按列表给出了方法列表。在方法拦截器的拦截方法中,您可以重新排序列表并返回List对象。因此在执行中,Testng将使用您修改的列表。在原始列表的staid中输入拦截方法。那就是在testng中使用方法拦截器。它不涉及这一级别的优先事项。 因为你可以使用methodinterceptor通过实现方法拦截器将测试列表重新排序为优先级。
请参阅以下示例代码以获得说明。
public class methodSortingListner implements IMethodInterceptor {
public List<IMethodInstance> intercept(List<IMethodInstance> methods, ITestContext context) {
List<IMethodInstance> result = new ArrayList<IMethodInstance>();
for (IMethodInstance method : methods) {
if(<your logic here>)
{
result.add(method);
}
}
return result;
}
这将给出一个适合您的逻辑的列表,并且将由testng执行
谢谢你, Dharshana。