Top Description Fields Constructors Methods
org.junit.platform.launcher.core

public Class EngineDiscoveryOrchestrator

extends Object
Class Inheritance
Annotations
@API
status:INTERNAL
since:1.7
consumers:testkit, engine
Static Imports
java.util.stream.Collectors.joining, org.apiguardian.api.API.Status.INTERNAL, org.junit.platform.engine.Filter.composeFilters, org.junit.platform.launcher.core.LauncherPhase.getDiscoveryIssueFailurePhase

Orchestrates test discovery using the configured test engines.
Since
1.7

Field Summary

Modifier and TypeField and Description
private final EngineDiscoveryResultValidator
private final ListenerRegistry<LauncherDiscoveryListener>
private static final Logger
private final Collection<PostDiscoveryFilter>
private final Iterable<TestEngine>

Constructor Summary

AccessConstructor and Description
public
pack-priv
EngineDiscoveryOrchestrator(Iterable<TestEngine> testEngines, Collection<PostDiscoveryFilter> postDiscoveryFilters, ListenerRegistry<LauncherDiscoveryListener> launcherDiscoveryListenerRegistry)

Method Summary

Modifier and TypeMethod and Description
private void
private void
public LauncherDiscoveryResult
discover(LauncherDiscoveryRequest request)

Discovers tests for the supplied request using the configured test engines.

pack-priv LauncherDiscoveryResult
public LauncherDiscoveryResult
discover(LauncherDiscoveryRequest request, 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 LauncherDiscoveryResult
private LauncherDiscoveryResult.EngineResultInfo
private Map<TestEngine, LauncherDiscoveryResult.EngineResultInfo>
pack-priv LauncherDiscoveryListener
private boolean
isExcluded(TestDescriptor descriptor, FilterResult filterResult)

private void
logTestDescriptorExclusionReasons(Map<String, List<TestDescriptor>> excludedTestDescriptorsByReason)

private void
populateExclusionReasonInMap(Optional<String> reason, TestDescriptor testDescriptor, Map<String, List<TestDescriptor>> excludedTestDescriptorsByReason)

private void
prune(Map<TestEngine, LauncherDiscoveryResult.EngineResultInfo> testEngineResults)

Prune all branches in the tree of TestDescriptors that do not have executable tests.

private static void
private static boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

discoveryResultValidatorback to summary
private final EngineDiscoveryResultValidator discoveryResultValidator
launcherDiscoveryListenerRegistryback to summary
private final ListenerRegistry<LauncherDiscoveryListener> launcherDiscoveryListenerRegistry
loggerback to summary
private static final Logger logger
postDiscoveryFiltersback to summary
private final Collection<PostDiscoveryFilter> postDiscoveryFilters
testEnginesback to summary
private final Iterable<TestEngine> testEngines

Constructor Detail

EngineDiscoveryOrchestratorback to summary
public EngineDiscoveryOrchestrator(Iterable<TestEngine> testEngines, Collection<PostDiscoveryFilter> postDiscoveryFilters)
EngineDiscoveryOrchestratorback to summary
pack-priv EngineDiscoveryOrchestrator(Iterable<TestEngine> testEngines, Collection<PostDiscoveryFilter> postDiscoveryFilters, ListenerRegistry<LauncherDiscoveryListener> launcherDiscoveryListenerRegistry)

Method Detail

acceptInAllTestEnginesback to summary
private void acceptInAllTestEngines(Map<TestEngine, LauncherDiscoveryResult.EngineResultInfo> testEngineResults, TestDescriptor.Visitor visitor)
applyPostDiscoveryFiltersback to summary
private void applyPostDiscoveryFilters(Map<TestEngine, LauncherDiscoveryResult.EngineResultInfo> testEngineDescriptors, List<PostDiscoveryFilter> filters)
discoverback to summary
public LauncherDiscoveryResult discover(LauncherDiscoveryRequest request)

Discovers tests for the supplied request using the configured test engines.

Applies engine filters and post-discovery filters and prunes the resulting test tree.

discoverback to summary
pack-priv LauncherDiscoveryResult discover(LauncherDiscoveryRequest request, LauncherPhase phase)
discoverback to summary
public LauncherDiscoveryResult discover(LauncherDiscoveryRequest request, UniqueId parentId)

Discovers tests for the supplied request in the supplied phase using the configured test engines to be used by the suite engine.

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 will not emit start or emit events for engines without tests.

discoverback to summary
private LauncherDiscoveryResult discover(LauncherDiscoveryRequest request, Optional<LauncherPhase> phase, Function<String, UniqueId> uniqueIdCreator)
discoverEngineRootback to summary
private LauncherDiscoveryResult.EngineResultInfo discoverEngineRoot(TestEngine testEngine, LauncherDiscoveryRequest request, DiscoveryIssueCollector issueCollector, Function<String, UniqueId> uniqueIdCreator)
discoverSafelyback to summary
private Map<TestEngine, LauncherDiscoveryResult.EngineResultInfo> discoverSafely(LauncherDiscoveryRequest request, Optional<LauncherPhase> phase, DiscoveryIssueCollector issueCollector, Function<String, UniqueId> uniqueIdCreator)
getLauncherDiscoveryListenerback to summary
pack-priv LauncherDiscoveryListener getLauncherDiscoveryListener(LauncherDiscoveryRequest discoveryRequest, DiscoveryIssueCollector issueCollector)
isExcludedback to summary
private boolean isExcluded(TestDescriptor descriptor, FilterResult filterResult)
logTestDescriptorExclusionReasonsback to summary
private void logTestDescriptorExclusionReasons(Map<String, List<TestDescriptor>> excludedTestDescriptorsByReason)
populateExclusionReasonInMapback to summary
private void populateExclusionReasonInMap(Optional<String> reason, TestDescriptor testDescriptor, Map<String, List<TestDescriptor>> excludedTestDescriptorsByReason)
pruneback to summary
private void prune(Map<TestEngine, LauncherDiscoveryResult.EngineResultInfo> testEngineResults)

Prune all branches in the tree of TestDescriptors that do not have executable tests.

If a TestEngine ends up with no TestDescriptors after pruning, it will not be removed.

reportDiscoveryIssuesback to summary
private static void reportDiscoveryIssues(LauncherDiscoveryResult discoveryResult)
shouldReportDiscoveryIssuesback to summary
private static boolean shouldReportDiscoveryIssues(LauncherDiscoveryRequest request, Optional<LauncherPhase> phase)