package io.robe.test; import org.junit.runners.BlockJUnit4ClassRunner; import org.junit.runners.model.FrameworkMethod; import org.junit.runners.model.InitializationError; import java.util.Collections; import java.util.List; /** * Created by adem on 07/10/2016. */ public class Roadrunner extends BlockJUnit4ClassRunner { public Roadrunner(Class<?> clazz) throws InitializationError { super(clazz); } @Override protected List<FrameworkMethod> computeTestMethods() { List<FrameworkMethod> methods = super.computeTestMethods(); Collections.sort(methods, (o1, o2) -> { int order1 = o1.getMethod().isAnnotationPresent(Order.class) ? o1.getAnnotation(Order.class).order() : Integer.MAX_VALUE; int order2 = o2.getMethod().isAnnotationPresent(Order.class) ? o2.getAnnotation(Order.class).order() : Integer.MAX_VALUE; return Integer.compare(order1, order2); }); return methods; } }