@Override
    public boolean shouldRun(Description description) {
      if (description.getChildren().size() == 0) {
        return true;
      }

      List<Annotation> runnerAnnotations = new ArrayList<>();
      Collections.addAll(runnerAnnotations, runner.getRunnerAnnotations());
      for (Annotation a : description.getAnnotations()) {
        if (runnerAnnotations.contains(a)) {
          return true;
        }
      }
      return false;
    }
So much hacking in order to expose JUnit internals. I have no words...
geode-junit/src/test/java/org/apache/geode/test/junit/runners/CategoryWithParameterizedRunnerFactoryTest.java