@API(status=INTERNAL,
since="1.7",
consumers={"org.junit.platform.testkit","org.junit.platform.suite.engine"})
public class EngineDiscoveryOrchestrator
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
EngineDiscoveryOrchestrator.Phase |
| Modifier and Type | Field and Description |
|---|---|
private EngineDiscoveryResultValidator |
discoveryResultValidator |
private ListenerRegistry<LauncherDiscoveryListener> |
launcherDiscoveryListenerRegistry |
private static Logger |
logger |
private java.util.Collection<PostDiscoveryFilter> |
postDiscoveryFilters |
private java.lang.Iterable<TestEngine> |
testEngines |
| Constructor and Description |
|---|
EngineDiscoveryOrchestrator(java.lang.Iterable<TestEngine> testEngines,
java.util.Collection<PostDiscoveryFilter> postDiscoveryFilters) |
EngineDiscoveryOrchestrator(java.lang.Iterable<TestEngine> testEngines,
java.util.Collection<PostDiscoveryFilter> postDiscoveryFilters,
ListenerRegistry<LauncherDiscoveryListener> launcherDiscoveryListenerRegistry) |
| Modifier and Type | Method and Description |
|---|---|
private void |
acceptInAllTestEngines(java.util.Map<TestEngine,TestDescriptor> testEngineDescriptors,
TestDescriptor.Visitor visitor) |
private void |
applyPostDiscoveryFilters(java.util.Map<TestEngine,TestDescriptor> testEngineDescriptors,
java.util.List<PostDiscoveryFilter> filters) |
LauncherDiscoveryResult |
discover(LauncherDiscoveryRequest request,
EngineDiscoveryOrchestrator.Phase phase)
Discovers tests for the supplied request in the supplied phase using the
configured test engines.
|
private java.util.Map<TestEngine,TestDescriptor> |
discover(LauncherDiscoveryRequest request,
EngineDiscoveryOrchestrator.Phase phase,
java.util.function.Function<java.lang.String,UniqueId> uniqueIdCreator) |
LauncherDiscoveryResult |
discover(LauncherDiscoveryRequest request,
EngineDiscoveryOrchestrator.Phase phase,
UniqueId parentId)
Discovers tests for the supplied request in the supplied phase using the
configured test engines to be used by the suite engine.
|
private TestDescriptor |
discoverEngineRoot(TestEngine testEngine,
LauncherDiscoveryRequest request,
LauncherDiscoveryListener listener,
java.util.function.Function<java.lang.String,UniqueId> uniqueIdCreator) |
private java.util.Map<TestEngine,TestDescriptor> |
discoverSafely(LauncherDiscoveryRequest request,
EngineDiscoveryOrchestrator.Phase phase,
LauncherDiscoveryListener listener,
java.util.function.Function<java.lang.String,UniqueId> uniqueIdCreator) |
(package private) LauncherDiscoveryListener |
getLauncherDiscoveryListener(LauncherDiscoveryRequest discoveryRequest) |
private boolean |
isExcluded(TestDescriptor descriptor,
FilterResult filterResult) |
private void |
logTestDescriptorExclusionReasons(java.util.Map<java.lang.String,java.util.List<TestDescriptor>> excludedTestDescriptorsByReason) |
private void |
populateExclusionReasonInMap(java.util.Optional<java.lang.String> reason,
TestDescriptor testDescriptor,
java.util.Map<java.lang.String,java.util.List<TestDescriptor>> excludedTestDescriptorsByReason) |
private void |
prune(java.util.Map<TestEngine,TestDescriptor> testEngineDescriptors)
Prune all branches in the tree of
TestDescriptors
that do not have executable tests. |
private static final Logger logger
private final EngineDiscoveryResultValidator discoveryResultValidator
private final java.lang.Iterable<TestEngine> testEngines
private final java.util.Collection<PostDiscoveryFilter> postDiscoveryFilters
private final ListenerRegistry<LauncherDiscoveryListener> launcherDiscoveryListenerRegistry
public EngineDiscoveryOrchestrator(java.lang.Iterable<TestEngine> testEngines, java.util.Collection<PostDiscoveryFilter> postDiscoveryFilters)
EngineDiscoveryOrchestrator(java.lang.Iterable<TestEngine> testEngines, java.util.Collection<PostDiscoveryFilter> postDiscoveryFilters, ListenerRegistry<LauncherDiscoveryListener> launcherDiscoveryListenerRegistry)
public LauncherDiscoveryResult discover(LauncherDiscoveryRequest request, EngineDiscoveryOrchestrator.Phase phase)
Applies engine filters and post-discovery filters and prunes the resulting test tree.
public LauncherDiscoveryResult discover(LauncherDiscoveryRequest request, EngineDiscoveryOrchestrator.Phase phase, UniqueId parentId)
Applies engine
filters and post-discovery filters and
prunes the resulting test tree.
Note: The test descriptors in the discovery result can safely be used as
non-root descriptors. Engine-test descriptor entries are pruned from
the returned result. As such execution by
EngineExecutionOrchestrator.execute(LauncherDiscoveryResult, EngineExecutionListener)
will not emit start or emit events for engines without tests.
private java.util.Map<TestEngine,TestDescriptor> discover(LauncherDiscoveryRequest request, EngineDiscoveryOrchestrator.Phase phase, java.util.function.Function<java.lang.String,UniqueId> uniqueIdCreator)
private java.util.Map<TestEngine,TestDescriptor> discoverSafely(LauncherDiscoveryRequest request, EngineDiscoveryOrchestrator.Phase phase, LauncherDiscoveryListener listener, java.util.function.Function<java.lang.String,UniqueId> uniqueIdCreator)
private TestDescriptor discoverEngineRoot(TestEngine testEngine, LauncherDiscoveryRequest request, LauncherDiscoveryListener listener, java.util.function.Function<java.lang.String,UniqueId> uniqueIdCreator)
LauncherDiscoveryListener getLauncherDiscoveryListener(LauncherDiscoveryRequest discoveryRequest)
private void applyPostDiscoveryFilters(java.util.Map<TestEngine,TestDescriptor> testEngineDescriptors, java.util.List<PostDiscoveryFilter> filters)
private void populateExclusionReasonInMap(java.util.Optional<java.lang.String> reason,
TestDescriptor testDescriptor,
java.util.Map<java.lang.String,java.util.List<TestDescriptor>> excludedTestDescriptorsByReason)
private void logTestDescriptorExclusionReasons(java.util.Map<java.lang.String,java.util.List<TestDescriptor>> excludedTestDescriptorsByReason)
private void prune(java.util.Map<TestEngine,TestDescriptor> testEngineDescriptors)
TestDescriptors
that do not have executable tests.
If a TestEngine ends up with no TestDescriptors after
pruning, it will not be removed.
private boolean isExcluded(TestDescriptor descriptor, FilterResult filterResult)
private void acceptInAllTestEngines(java.util.Map<TestEngine,TestDescriptor> testEngineDescriptors, TestDescriptor.Visitor visitor)