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:
ResourceLockAware, TestClassAware, Validatable, Node<JupiterEngineExecutionContext>, TestDescriptor
- Direct Known Subclasses:
ClassTemplateTestDescriptor, ClassTestDescriptor, NestedClassTestDescriptor
@API(status=INTERNAL,
since="5.5")
public abstract class ClassBasedTestDescriptor
extends JupiterTestDescriptor
implements ResourceLockAware, TestClassAware, Validatable
TestDescriptor for tests based on Java classes.- Since:
- 5.5
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprivate static classNested classes/interfaces inherited from class JupiterTestDescriptor
JupiterTestDescriptor.ExceptionHandlerInvoker<E>Nested classes/interfaces inherited from interface Node
Node.DynamicTestExecutor, Node.ExecutionMode, Node.Invocation<C>, Node.SkipResultNested classes/interfaces inherited from interface TestDescriptor
TestDescriptor.Type, TestDescriptor.Visitor -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ClassBasedTestDescriptor.ClassInfoprivate static final InterceptingExecutableInvokerprivate org.junit.jupiter.api.extension.TestInstanceFactoryFields inherited from class JupiterTestDescriptor
configurationFields inherited from class AbstractTestDescriptor
children -
Constructor Summary
ConstructorsConstructorDescriptionClassBasedTestDescriptor(UniqueId uniqueId, Class<?> testClass, String displayName, JupiterConfiguration configuration) ClassBasedTestDescriptor(UniqueId uniqueId, Class<?> testClass, Supplier<String> displayNameSupplier, JupiterConfiguration configuration) -
Method Summary
Modifier and TypeMethodDescriptionfinal voidafter(JupiterEngineExecutionContext context) Execute the after behavior of this node.before(JupiterEngineExecutionContext context) Execute the before behavior of this node.voidcleanUp(JupiterEngineExecutionContext context) Clean up the suppliedcontextafter execution.private voidexecuteAndMaskThrowable(org.junit.jupiter.api.function.Executable executable) protected final Optional<Node.ExecutionMode> protected final Optional<Node.ExecutionMode> final StringGet 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<?> final TestDescriptor.TypegetType()Determine theTestDescriptor.Typeof this descriptor.private org.junit.jupiter.api.extension.TestInstancesinstantiateAndPostProcessTestInstance(JupiterEngineExecutionContext parentExecutionContext, ClassExtensionContext ourExtensionContext, ExtensionRegistry registry, JupiterEngineExecutionContext context) protected final org.junit.jupiter.api.extension.TestInstancesinstantiateTestClass(Optional<org.junit.jupiter.api.extension.TestInstances> outerInstances, ExtensionRegistry registry, ExtensionContextSupplier extensionContext) protected abstract org.junit.jupiter.api.extension.TestInstancesinstantiateTestClass(JupiterEngineExecutionContext parentExecutionContext, ExtensionContextSupplier extensionContext, ExtensionRegistry registry, JupiterEngineExecutionContext context) private voidprivate voidinvokeAfterAllMethodExecutionExceptionHandlers(ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context, Throwable throwable) private voidprivate voidprivate voidinvokeBeforeAllMethodExecutionExceptionHandlers(ExtensionRegistry registry, org.junit.jupiter.api.extension.ExtensionContext context, Throwable throwable) private voidprivate voidinvokeMethodInExtensionContext(Method method, org.junit.jupiter.api.extension.ExtensionContext context, ExtensionRegistry registry, InterceptingExecutableInvoker.ReflectiveInterceptorCall.VoidMethodInterceptorCall interceptorCall) private ObjectinvokeTestClassConstructor(Optional<Object> outerInstance, ExtensionRegistry registry, ExtensionContextSupplier extensionContext) private ObjectinvokeTestInstanceFactory(Optional<Object> outerInstance, ExtensionContextSupplier extensionContext) private voidinvokeTestInstancePostProcessors(Object instance, ExtensionRegistry registry, ExtensionContextSupplier context) private voidinvokeTestInstancePreConstructCallbacks(org.junit.jupiter.api.extension.TestInstanceFactoryContext factoryContext, ExtensionRegistry registry, ExtensionContextSupplier context) private voidprivate booleanprepare(JupiterEngineExecutionContext context) Must be overridden and return a new context with a newExtensionContextso cleanUp() does not accidentally close the parent context.private voidprivate voidprivate voidregisterMethodsAsExtensions(List<Method> methods, ExtensionRegistrar registrar, Function<Method, org.junit.jupiter.api.extension.Extension> extensionSynthesizer) private org.junit.jupiter.api.extension.TestInstanceFactoryresolveTestInstanceFactory(ExtensionRegistry registry) final voidsetDefaultChildExecutionMode(Node.ExecutionMode defaultChildExecutionMode) private AfterEachMethodAdapterprivate BeforeEachMethodAdapterprivate TestInstancesProvidertestInstancesProvider(JupiterEngineExecutionContext parentExecutionContext, ClassExtensionContext ourExtensionContext) final voidvalidate(DiscoveryIssueReporter reporter) Validate the state of this descriptor and report any issues found to the suppliedDiscoveryIssueReporter.protected voidprotected voidprivate voidprivate voidvalidateTags(DiscoveryIssueReporter reporter) Methods inherited from class JupiterTestDescriptor
copyIncludingDescendants, getExclusiveResources, getExecutionMode, getExecutionModeFromAnnotation, getTags, invokeExecutionExceptionHandlers, shouldBeSkipped, toExecutionMode, withUniqueIdMethods inherited from class AbstractTestDescriptor
addChild, equals, findByUniqueId, getChildren, getDisplayName, getParent, getSource, getTags, getUniqueId, hashCode, orderChildren, removeChild, removeFromHierarchy, setParent, toStringMethods inherited from interface Node
around, execute, nodeFinished, nodeSkippedMethods inherited from interface ResourceLockAware
determineExclusiveResources, determineOwnExclusiveResources, getResourceLocksProviderEvaluatorMethods inherited from interface TestClassAware
getEnclosingTestClassesMethods inherited from interface TestDescriptor
accept, addChild, findByUniqueId, getAncestors, getChildren, getDescendants, getDisplayName, getParent, getSource, getTags, getUniqueId, isContainer, isRoot, isTest, mayRegisterTests, orderChildren, prune, removeChild, removeFromHierarchy, setParent
-
Field Details
-
executableInvoker
-
classInfo
-
lifecycleMethods
-
testInstanceFactory
private org.junit.jupiter.api.extension.TestInstanceFactory testInstanceFactory
-
-
Constructor Details
-
ClassBasedTestDescriptor
ClassBasedTestDescriptor(UniqueId uniqueId, Class<?> testClass, Supplier<String> displayNameSupplier, JupiterConfiguration configuration) -
ClassBasedTestDescriptor
ClassBasedTestDescriptor(UniqueId uniqueId, Class<?> testClass, String displayName, JupiterConfiguration configuration)
-
-
Method Details
-
getTestClass
- Specified by:
getTestClassin interfaceTestClassAware
-
getType
Description copied from interface:TestDescriptorDetermine theTestDescriptor.Typeof this descriptor.- Specified by:
getTypein interfaceTestDescriptor- Returns:
- the descriptor type; never
null. - See Also:
-
getLegacyReportingName
Description copied from interface:TestDescriptorGet 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().- Specified by:
getLegacyReportingNamein interfaceTestDescriptor- Returns:
- the legacy reporting name; never
nullor blank
-
validate
Description copied from interface:ValidatableValidate the state of this descriptor and report any issues found to the suppliedDiscoveryIssueReporter.- Specified by:
validatein interfaceValidatable
-
validateDisplayNameAnnotation
-
validateCoreLifecycleMethods
-
validateClassTemplateInvocationLifecycleMethods
-
validateTags
-
getExplicitExecutionMode
- Overrides:
getExplicitExecutionModein classJupiterTestDescriptor
-
getDefaultChildExecutionMode
- Overrides:
getDefaultChildExecutionModein classJupiterTestDescriptor
-
setDefaultChildExecutionMode
-
getExclusiveResourceCollector
- Specified by:
getExclusiveResourceCollectorin interfaceResourceLockAware
-
prepare
Description copied from class:JupiterTestDescriptorMust be overridden and return a new context with a newExtensionContextso cleanUp() does not accidentally close the parent context.- Specified by:
preparein interfaceNode<JupiterEngineExecutionContext>- Specified by:
preparein classJupiterTestDescriptor- See Also:
-
before
Description copied from interface:NodeExecute the before behavior of this node.This method will be called once before execution of this node.
The default implementation returns the supplied
contextunmodified.- Specified by:
beforein interfaceNode<JupiterEngineExecutionContext>- 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:NodeExecute the after behavior of this node.This method will be called once after execution of this node.
The default implementation does nothing.
- Specified by:
afterin interfaceNode<JupiterEngineExecutionContext>- Parameters:
context- the context to execute in- See Also:
-
cleanUp
Description copied from interface:NodeClean up the suppliedcontextafter execution.The default implementation does nothing.
- Specified by:
cleanUpin interfaceNode<JupiterEngineExecutionContext>- Overrides:
cleanUpin classJupiterTestDescriptor- Parameters:
context- the context to execute in- Throws:
Exception- See Also:
-
resolveTestInstanceFactory
private org.junit.jupiter.api.extension.TestInstanceFactory resolveTestInstanceFactory(ExtensionRegistry registry) -
testInstancesProvider
private TestInstancesProvider testInstancesProvider(JupiterEngineExecutionContext parentExecutionContext, ClassExtensionContext ourExtensionContext) -
instantiateAndPostProcessTestInstance
private org.junit.jupiter.api.extension.TestInstances instantiateAndPostProcessTestInstance(JupiterEngineExecutionContext parentExecutionContext, ClassExtensionContext ourExtensionContext, ExtensionRegistry registry, JupiterEngineExecutionContext context) -
instantiateTestClass
protected abstract org.junit.jupiter.api.extension.TestInstances instantiateTestClass(JupiterEngineExecutionContext parentExecutionContext, ExtensionContextSupplier extensionContext, ExtensionRegistry registry, JupiterEngineExecutionContext context) -
instantiateTestClass
protected final org.junit.jupiter.api.extension.TestInstances instantiateTestClass(Optional<org.junit.jupiter.api.extension.TestInstances> outerInstances, ExtensionRegistry registry, ExtensionContextSupplier extensionContext) -
invokeTestInstanceFactory
private Object invokeTestInstanceFactory(Optional<Object> outerInstance, ExtensionContextSupplier extensionContext) -
invokeTestClassConstructor
private Object invokeTestClassConstructor(Optional<Object> outerInstance, ExtensionRegistry registry, ExtensionContextSupplier extensionContext) -
invokeTestInstancePreConstructCallbacks
private void invokeTestInstancePreConstructCallbacks(org.junit.jupiter.api.extension.TestInstanceFactoryContext factoryContext, ExtensionRegistry registry, ExtensionContextSupplier context) -
invokeTestInstancePostProcessors
private void invokeTestInstancePostProcessors(Object instance, ExtensionRegistry registry, ExtensionContextSupplier 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)
-