下面列出了org.junit.platform.engine.discovery.DiscoverySelectors#org.junit.platform.engine.discovery.ClassSelector 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
@SuppressWarnings("unchecked") // compatibility is explicitly checked
public <T extends DiscoverySelector> List<T> getSelectorsByType(Class<T> selectorType) {
if (ClasspathRootSelector.class.equals(selectorType)) {
return (List<T>) createClasspathRootSelectors(classpathRootsToDiscover);
}
if (PackageSelector.class.equals(selectorType)) {
return (List<T>) createPackageSelectors(packagesToDiscover);
}
if (ClassSelector.class.equals(selectorType)) {
return (List<T>) createClassSelectors(classesToDiscover);
}
if (MethodSelector.class.equals(selectorType)) {
return (List<T>) createMethodSelectors(methodsToDiscover);
}
if (FieldSelector.class.equals(selectorType)) {
return (List<T>) createFieldSelectors(fieldsToDiscover);
}
if (UniqueIdSelector.class.equals(selectorType)) {
return (List<T>) createUniqueIdSelectors(idsToDiscover);
}
return emptyList();
}
@Step("Run classes {classes}")
private AllureResults runClasses(final Class<?>... classes) {
final AllureResultsWriterStub writerStub = new AllureResultsWriterStub();
final AllureLifecycle lifecycle = new AllureLifecycle(writerStub);
final ClassSelector[] classSelectors = Stream.of(classes)
.map(DiscoverySelectors::selectClass)
.toArray(ClassSelector[]::new);
final LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
.configurationParameter("junit.jupiter.extensions.autodetection.enabled", "true")
.selectors(classSelectors)
.build();
final LauncherConfig config = LauncherConfig.builder()
.enableTestExecutionListenerAutoRegistration(false)
.addTestExecutionListeners(new AllureJunitPlatform(lifecycle))
.build();
final Launcher launcher = LauncherFactory.create(config);
final AllureLifecycle defaultLifecycle = Allure.getLifecycle();
try {
Allure.setLifecycle(lifecycle);
StepsAspects.setLifecycle(lifecycle);
AttachmentsAspects.setLifecycle(lifecycle);
launcher.execute(request);
return writerStub;
} finally {
Allure.setLifecycle(defaultLifecycle);
StepsAspects.setLifecycle(defaultLifecycle);
AttachmentsAspects.setLifecycle(defaultLifecycle);
}
}
@Step("Run classes {classes}")
private AllureResults runClasses(final Class<?>... classes) {
final AllureResultsWriterStub writerStub = new AllureResultsWriterStub();
final AllureLifecycle lifecycle = new AllureLifecycle(writerStub);
final ClassSelector[] classSelectors = Stream.of(classes)
.map(DiscoverySelectors::selectClass)
.toArray(ClassSelector[]::new);
final LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
.selectors(classSelectors)
.build();
final LauncherConfig config = LauncherConfig.builder()
.enableTestExecutionListenerAutoRegistration(false)
.addTestExecutionListeners(new AllureJunitPlatform(lifecycle))
.build();
final Launcher launcher = LauncherFactory.create(config);
final AllureLifecycle defaultLifecycle = Allure.getLifecycle();
try {
Allure.setLifecycle(lifecycle);
StepsAspects.setLifecycle(lifecycle);
AttachmentsAspects.setLifecycle(lifecycle);
launcher.execute(request);
return writerStub;
} finally {
Allure.setLifecycle(defaultLifecycle);
StepsAspects.setLifecycle(defaultLifecycle);
AttachmentsAspects.setLifecycle(defaultLifecycle);
}
}
private void resolveRequestedClasses(EngineDiscoveryRequest discoveryRequest, UniqueId uniqueId, ArchUnitEngineDescriptor result) {
discoveryRequest.getSelectorsByType(ClassSelector.class).stream()
.map(ClassSelector::getJavaClass)
.filter(this::isArchUnitTestCandidate)
.forEach(clazz -> ArchUnitTestDescriptor.resolve(
result, ElementResolver.create(result, uniqueId, clazz), cache.get()));
}
@Override
@SuppressWarnings("unchecked")
public <T extends DiscoverySelector> List<T> getSelectorsByType(Class<T> selectorType) {
if (ClassSelector.class.equals(selectorType)) {
List<T> list = new ArrayList<>();
list.add(( T ) DiscoverySelectors.selectClass(testClass));
return list;
}
return Collections.emptyList();
}
private List<ClassSelector> createClassSelectors(List<Class<?>> classesToDiscover) {
return classesToDiscover.stream().map(DiscoverySelectors::selectClass).collect(toList());
}