Class ClassBasedTestDescriptor
java.lang.Object
org.junit.platform.engine.support.descriptor.AbstractTestDescriptor
org.junit.jupiter.engine.descriptor.JupiterTestDescriptor
org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor
- All Implemented Interfaces:
Node<JupiterEngineExecutionContext>
,TestDescriptor
- Direct Known Subclasses:
ClassTestDescriptor
,NestedClassTestDescriptor
@API(status=INTERNAL,
since="5.5")
public abstract class ClassBasedTestDescriptor
extends JupiterTestDescriptor
TestDescriptor
for tests based on Java classes.- Since:
- 5.5
-
Nested Class Summary
Nested classes/interfaces inherited from class org.junit.jupiter.engine.descriptor.JupiterTestDescriptor
JupiterTestDescriptor.ExceptionHandlerInvoker<E extends org.junit.jupiter.api.extension.Extension>
Nested classes/interfaces inherited from interface org.junit.platform.engine.support.hierarchical.Node
Node.DynamicTestExecutor, Node.ExecutionMode, Node.Invocation<C extends EngineExecutionContext>, Node.SkipResult
Nested classes/interfaces inherited from interface org.junit.platform.engine.TestDescriptor
TestDescriptor.Type, TestDescriptor.Visitor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Node.ExecutionMode
private static final InterceptingExecutableInvoker
protected final org.junit.jupiter.api.TestInstance.Lifecycle
private final Class
<?> private org.junit.jupiter.api.extension.TestInstanceFactory
Fields inherited from class org.junit.jupiter.engine.descriptor.JupiterTestDescriptor
configuration
Fields inherited from class org.junit.platform.engine.support.descriptor.AbstractTestDescriptor
children
-
Constructor Summary
ConstructorsConstructorDescriptionClassBasedTestDescriptor
(UniqueId uniqueId, Class<?> testClass, Supplier<String> displayNameSupplier, JupiterConfiguration configuration) -
Method Summary
Modifier and TypeMethodDescriptionvoid
after
(JupiterEngineExecutionContext context) Execute the after behavior of this node.before
(JupiterEngineExecutionContext context) Execute the before behavior of this node.private void
executeAndMaskThrowable
(org.junit.jupiter.api.function.Executable executable) protected Optional
<Node.ExecutionMode> Get the set of exclusive resources required to execute this node.protected Optional
<Node.ExecutionMode> Get the name of this descriptor in a format that is suitable for legacy reporting infrastructure — for example, for reporting systems built on the Ant-based XML reporting format for JUnit 4.final Class
<?> getType()
Determine theTestDescriptor.Type
of this descriptor.private org.junit.jupiter.api.extension.TestInstances
instantiateAndPostProcessTestInstance
(JupiterEngineExecutionContext parentExecutionContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ExtensionRegistry registry, ExtensionRegistrar registrar, ThrowableCollector throwableCollector) protected org.junit.jupiter.api.extension.TestInstances
instantiateTestClass
(Optional<org.junit.jupiter.api.extension.TestInstances> outerInstances, ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext extensionContext) protected abstract org.junit.jupiter.api.extension.TestInstances
instantiateTestClass
(JupiterEngineExecutionContext parentExecutionContext, ExtensionRegistry registry, ExtensionRegistrar registrar, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ThrowableCollector throwableCollector) private void
private void
invokeAfterAllMethodExecutionExceptionHandlers
(ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context, Throwable throwable) private void
private void
private void
invokeBeforeAllMethodExecutionExceptionHandlers
(ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context, Throwable throwable) private void
private void
invokeMethodInExtensionContext
(Method method, org.junit.jupiter.api.extension.ExtensionContext context, ExtensionRegistry registry, InterceptingExecutableInvoker.ReflectiveInterceptorCall.VoidMethodInterceptorCall interceptorCall) private Object
invokeTestClassConstructor
(Optional<Object> outerInstance, ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext extensionContext) private Object
invokeTestInstanceFactory
(Optional<Object> outerInstance, org.junit.jupiter.api.extension.ExtensionContext extensionContext) private void
invokeTestInstancePostProcessors
(Object instance, ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context) private void
invokeTestInstancePreConstructCallbacks
(org.junit.jupiter.api.extension.TestInstanceFactoryContext factoryContext, ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context) private void
private boolean
prepare
(JupiterEngineExecutionContext context) Must be overridden and return a new context so cleanUp() does not accidentally close the parent context.private void
private void
private void
registerMethodsAsExtensions
(List<Method> methods, ExtensionRegistrar registrar, Function<Method, org.junit.jupiter.api.extension.Extension> extensionSynthesizer) private org.junit.jupiter.api.extension.TestInstanceFactory
resolveTestInstanceFactory
(ExtensionRegistry registry) void
setDefaultChildExecutionMode
(Node.ExecutionMode defaultChildExecutionMode) private AfterEachMethodAdapter
private BeforeEachMethodAdapter
private TestInstancesProvider
testInstancesProvider
(JupiterEngineExecutionContext parentExecutionContext, ClassExtensionContext extensionContext) Methods inherited from class org.junit.jupiter.engine.descriptor.JupiterTestDescriptor
cleanUp, getExclusiveResourcesFromAnnotation, getExecutionMode, getExecutionModeFromAnnotation, getTags, invokeExecutionExceptionHandlers, shouldBeSkipped, toExecutionMode
Methods inherited from class org.junit.platform.engine.support.descriptor.AbstractTestDescriptor
addChild, equals, findByUniqueId, getChildren, getDisplayName, getParent, getSource, getTags, getUniqueId, hashCode, removeChild, removeFromHierarchy, setParent, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.junit.platform.engine.support.hierarchical.Node
around, execute, nodeFinished, nodeSkipped
Methods inherited from interface org.junit.platform.engine.TestDescriptor
accept, getAncestors, getDescendants, isContainer, isRoot, isTest, mayRegisterTests, prune
-
Field Details
-
executableInvoker
-
testClass
-
tags
-
lifecycle
protected final org.junit.jupiter.api.TestInstance.Lifecycle lifecycle -
defaultChildExecutionMode
-
testInstanceFactory
private org.junit.jupiter.api.extension.TestInstanceFactory testInstanceFactory -
beforeAllMethods
-
afterAllMethods
-
-
Constructor Details
-
ClassBasedTestDescriptor
ClassBasedTestDescriptor(UniqueId uniqueId, Class<?> testClass, Supplier<String> displayNameSupplier, JupiterConfiguration configuration)
-
-
Method Details
-
getTestClass
-
getEnclosingTestClasses
-
getType
Description copied from interface:TestDescriptor
Determine theTestDescriptor.Type
of this descriptor.- Returns:
- the descriptor type; never
null
. - See Also:
-
getLegacyReportingName
Description copied from interface:TestDescriptor
Get the name of this descriptor in a format that is suitable for legacy reporting infrastructure — for example, for reporting systems built on the Ant-based XML reporting format for JUnit 4.The default implementation delegates to
TestDescriptor.getDisplayName()
.- Returns:
- the legacy reporting name; never
null
or blank
-
getExplicitExecutionMode
- Overrides:
getExplicitExecutionMode
in classJupiterTestDescriptor
-
getDefaultChildExecutionMode
- Overrides:
getDefaultChildExecutionMode
in classJupiterTestDescriptor
-
setDefaultChildExecutionMode
-
getExclusiveResources
Description copied from interface:Node
Get the set of exclusive resources required to execute this node.The default implementation returns an empty set.
- Returns:
- the set of exclusive resources required by this node; never
null
but potentially empty - See Also:
-
prepare
Description copied from class:JupiterTestDescriptor
Must be overridden and return a new context so cleanUp() does not accidentally close the parent context.- Specified by:
prepare
in interfaceNode<JupiterEngineExecutionContext>
- Specified by:
prepare
in classJupiterTestDescriptor
- See Also:
-
before
Description copied from interface:Node
Execute the before behavior of this node.This method will be called once before execution of this node.
The default implementation returns the supplied
context
unmodified.- Parameters:
context
- the context to execute in- Returns:
- the new context to be used for children of this node; never
null
- See Also:
-
after
Description copied from interface:Node
Execute the after behavior of this node.This method will be called once after execution of this node.
The default implementation does nothing.
- Parameters:
context
- the context to execute in- See Also:
-
resolveTestInstanceFactory
private org.junit.jupiter.api.extension.TestInstanceFactory resolveTestInstanceFactory(ExtensionRegistry registry) -
testInstancesProvider
private TestInstancesProvider testInstancesProvider(JupiterEngineExecutionContext parentExecutionContext, ClassExtensionContext extensionContext) -
instantiateAndPostProcessTestInstance
private org.junit.jupiter.api.extension.TestInstances instantiateAndPostProcessTestInstance(JupiterEngineExecutionContext parentExecutionContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ExtensionRegistry registry, ExtensionRegistrar registrar, ThrowableCollector throwableCollector) -
instantiateTestClass
protected abstract org.junit.jupiter.api.extension.TestInstances instantiateTestClass(JupiterEngineExecutionContext parentExecutionContext, ExtensionRegistry registry, ExtensionRegistrar registrar, org.junit.jupiter.api.extension.ExtensionContext extensionContext, ThrowableCollector throwableCollector) -
instantiateTestClass
protected org.junit.jupiter.api.extension.TestInstances instantiateTestClass(Optional<org.junit.jupiter.api.extension.TestInstances> outerInstances, ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext extensionContext) -
invokeTestInstanceFactory
-
invokeTestClassConstructor
private Object invokeTestClassConstructor(Optional<Object> outerInstance, ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext extensionContext) -
invokeTestInstancePreConstructCallbacks
private void invokeTestInstancePreConstructCallbacks(org.junit.jupiter.api.extension.TestInstanceFactoryContext factoryContext, ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context) -
invokeTestInstancePostProcessors
private void invokeTestInstancePostProcessors(Object instance, ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context) -
executeAndMaskThrowable
private void executeAndMaskThrowable(org.junit.jupiter.api.function.Executable executable) -
invokeBeforeAllCallbacks
-
invokeBeforeAllMethods
-
invokeBeforeAllMethodExecutionExceptionHandlers
private void invokeBeforeAllMethodExecutionExceptionHandlers(ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context, Throwable throwable) -
invokeAfterAllMethods
-
invokeAfterAllMethodExecutionExceptionHandlers
private void invokeAfterAllMethodExecutionExceptionHandlers(ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context, Throwable throwable) -
invokeAfterAllCallbacks
-
invokeTestInstancePreDestroyCallbacks
-
isPerClassLifecycle
-
registerBeforeEachMethodAdapters
-
registerAfterEachMethodAdapters
-
registerMethodsAsExtensions
private void registerMethodsAsExtensions(List<Method> methods, ExtensionRegistrar registrar, Function<Method, org.junit.jupiter.api.extension.Extension> extensionSynthesizer) -
synthesizeBeforeEachMethodAdapter
-
synthesizeAfterEachMethodAdapter
-
invokeMethodInExtensionContext
private void invokeMethodInExtensionContext(Method method, org.junit.jupiter.api.extension.ExtensionContext context, ExtensionRegistry registry, InterceptingExecutableInvoker.ReflectiveInterceptorCall.VoidMethodInterceptorCall interceptorCall)
-