private static List<Runner> getRunners(final Class<?> testClass) throws InitializationError {
    SuiteClasses annotation = testClass.getAnnotation(SuiteClasses.class);
    if (annotation == null) {
      throw new InitializationError(
          String.format("class '%s' must have a SuiteClasses annotation", testClass.getName()));
    }

    SuiteRunner.Candidate candidate = testClass.getAnnotation(Candidate.class);
    Class<?> candidateClass = null;
    if (candidate != null) {
      candidateClass = candidate.value();
    }

    Class<?>[] childClasses = annotation.value();
    List<Runner> runners = new ArrayList<>();
    for (Class childClass : childClasses) {
      runners.add(new SuiteBlockRunner(testClass, childClass));

      if (candidateClass != null) {
        runners.add(new SuiteBlockRunner(testClass, candidateClass));
      }
    }
    return runners;
  }
@return the classes to be run
geode-junit/src/main/java/org/apache/geode/test/junit/runners/SuiteRunner.java