package org.test4j.testng.utility; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.testng.IMethodInstance; import org.testng.IMethodInterceptor; import org.testng.ITestContext; /** * 测试方法排序 * * @author darui.wudr */ public class Test4JMethodsOrder implements IMethodInterceptor { @Override public List<IMethodInstance> intercept(List<IMethodInstance> methods, ITestContext context) { Map<String, List<IMethodInstance>> map = new HashMap<String, List<IMethodInstance>>(); for (IMethodInstance mi : methods) { Object instance = mi.getInstance(); String clazzname = instance.getClass().getName(); List<IMethodInstance> list = map.get(clazzname); if (list == null) { list = new ArrayList<IMethodInstance>(); map.put(clazzname, list); } list.add(mi); } List<IMethodInstance> order = new ArrayList<IMethodInstance>(); for (String clazzname : map.keySet()) { List<IMethodInstance> list = map.get(clazzname); order.addAll(list); } System.out.println("\n\n\n"); for (IMethodInstance mi : order) { System.out.println(mi.getInstance().getClass().getName()); } System.out.println("\n\n\n"); return order; } }