public ConcurrentSuite()

in junit-addons/src/main/java/com/mycila/junit/concurrent/ConcurrentSuite.java [32:68]


    public ConcurrentSuite(Class<?> klass) throws InitializationError {
        super(klass, new AllDefaultPossibilitiesBuilder(true) {
            @Override
            public Runner runnerForClass(Class<?> testClass) throws Throwable {
                List<RunnerBuilder> builders = Arrays.asList(
                        new RunnerBuilder() {
                            @Override
                            public Runner runnerForClass(Class<?> testClass) throws Throwable {
                                Concurrency annotation = testClass.getAnnotation(Concurrency.class);
                                return annotation != null ? new ConcurrentJunitRunner(testClass) : null;
                            }
                        },
                        ignoredBuilder(),
                        annotatedBuilder(),
                        suiteMethodBuilder(),
                        junit3Builder(),
                        junit4Builder());
                for (RunnerBuilder each : builders) {
                    Runner runner = each.safeRunnerForClass(testClass);
                    if (runner != null)
                        return runner;
                }
                return null;
            }
        });
        int nThreads = 0;
        if (klass.isAnnotationPresent(Concurrency.class))
            nThreads = Math.max(0, klass.getAnnotation(Concurrency.class).value());
        if (nThreads == 0) {
            SuiteClasses suiteClasses = klass.getAnnotation(SuiteClasses.class);
            nThreads = suiteClasses != null ? suiteClasses.value().length : Runtime.getRuntime().availableProcessors();
        }
        setScheduler(new ConcurrentRunnerScheduler(
                klass.getSimpleName(),
                Math.min(Runtime.getRuntime().availableProcessors(), nThreads),
                nThreads));
    }