您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如果是两个组的成员,是否可以为TestNG设置条件以运行测试?

如果是两个组的成员,是否可以为TestNG设置条件以运行测试?

您可以创建实现IMethodInterceptor接口的侦听器。这将使您能够从@Test访问组列表,并根据需要管理“测试要执行的列表”。同时,ITestContext参数允许您从testNg xml访问数据。因此,您可以将组设置为以认的testNg方式运行(合适的xml文件);但根据您实现的算法运行它们。就像是:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

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

public class Interceptor implements IMethodInterceptor
{

    @Override
    public List<IMethodInstance> intercept(List<IMethodInstance> methods, ITestContext context)
    {
        int methCount = methods.size();
        List<IMethodInstance> result = new ArrayList<IMethodInstance>();

        for (int i = 0; i < methCount; i++)
        {
            IMethodInstance instns = methods.get(i);
            List<String> grps = Arrays.asList(instns.getmethod().getConstructorOrMethod().getmethod().getAnnotation(Test.class).groups());
//get these groups from testng.xml via context method parameter                         
            if (grps.contains("A") && grps.contains("B"))
            {
                result.add(instns);
            }                       
        }                       
        return result;
    }
}
其他 2022/1/1 18:13:32 有678人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶