in src/main/java/org/apache/sling/junit/impl/TestsManagerImpl.java [153:178]
public <T> T createTestRequest(TestSelector selector,
BiFunction<Class<?>, String, T> methodRequestFactory,
Function<Class<?>[], T> classesRequestFactory) throws ClassNotFoundException {
final T request;
final Collection<String> testNames = getTestNames(selector);
if (testNames.isEmpty()) {
throw new NoTestCasesFoundException();
}
final String testMethodName = selector == null ? null : selector.getSelectedTestMethodName();
if (testNames.size() == 1 && isNotBlank(testMethodName)) {
final String className = testNames.iterator().next();
log.debug("Running test method {} from test class {}", testMethodName, className);
request = methodRequestFactory.apply(getTestClass(className), testMethodName);
} else {
if (isNotBlank(testMethodName)) {
throw new IllegalStateException("A test method name is only supported for a single test class");
}
final List<Class<?>> testClasses = new ArrayList<>();
for (String className : testNames) {
log.debug("Running test class {}", className);
testClasses.add(getTestClass(className));
}
request = classesRequestFactory.apply(testClasses.toArray(new Class[0]));
}
return request;
}