package org.jboss.weld.tests; import org.jboss.shrinkwrap.impl.base.URLPackageScanner; import org.junit.runners.Suite; import org.junit.runners.model.InitializationError; import org.junit.runners.model.RunnerBuilder; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class AllTestRunner extends Suite { public AllTestRunner(Class<?> superClass, RunnerBuilder builder) throws InitializationError { super(builder, superClass, getAllClasses()); } private static Class<?>[] getAllClasses() { final List<Class<?>> classes = new ArrayList<Class<?>>(); final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); URLPackageScanner.newInstance( true, classLoader, new URLPackageScanner.Callback() { public void classFound(String className) { if (!className.endsWith("Test")) { return; } if (className.substring(className.lastIndexOf('.') + 1).length() <= 4) { return; } try { classes.add(classLoader.loadClass(className)); } catch (Exception e) { throw new RuntimeException(e); } } }, AllTestRunner.class.getPackage().getName()).scanPackage(); //ExampleTest.class.getPackage()).scanPackage(); Collections.sort(classes, new Comparator<Class<?>>() { public int compare(Class<?> o1, Class<?> o2) { return o1.getPackage().getName().compareTo(o2.getPackage().getName()); } }); return classes.toArray(new Class<?>[]{}); } }