@API(status=INTERNAL, since="5.5") public abstract class ClassBasedTestDescriptor extends JupiterTestDescriptor
TestDescriptor
for tests based on Java classes.JupiterTestDescriptor.ExceptionHandlerInvoker<E extends Extension>
Node.DynamicTestExecutor, Node.ExecutionMode, Node.Invocation<C extends EngineExecutionContext>, Node.SkipResult
TestDescriptor.Type, TestDescriptor.Visitor
Modifier and Type | Field and Description |
---|---|
private java.util.List<java.lang.reflect.Method> |
afterAllMethods |
private java.util.List<java.lang.reflect.Method> |
beforeAllMethods |
private Node.ExecutionMode |
defaultChildExecutionMode |
private static ExecutableInvoker |
executableInvoker |
protected TestInstance.Lifecycle |
lifecycle |
protected java.util.Set<TestTag> |
tags |
private java.lang.Class<?> |
testClass |
private TestInstanceFactory |
testInstanceFactory |
configuration
children
Constructor and Description |
---|
ClassBasedTestDescriptor(UniqueId uniqueId,
java.lang.Class<?> testClass,
java.util.function.Supplier<java.lang.String> displayNameSupplier,
JupiterConfiguration configuration) |
cleanUp, getExclusiveResourcesFromAnnotation, getExecutionMode, getExecutionModeFromAnnotation, getTags, invokeExecutionExceptionHandlers, shouldBeSkipped, toExecutionMode
addChild, equals, findByUniqueId, getChildren, getDisplayName, getParent, getSource, getTags, getUniqueId, hashCode, removeChild, removeFromHierarchy, setParent, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
around, execute, nodeFinished, nodeSkipped
accept, containsTests, getDescendants, isContainer, isRoot, isTest, mayRegisterTests, prune
private static final ExecutableInvoker executableInvoker
private final java.lang.Class<?> testClass
protected final java.util.Set<TestTag> tags
protected final TestInstance.Lifecycle lifecycle
private Node.ExecutionMode defaultChildExecutionMode
private TestInstanceFactory testInstanceFactory
private java.util.List<java.lang.reflect.Method> beforeAllMethods
private java.util.List<java.lang.reflect.Method> afterAllMethods
ClassBasedTestDescriptor(UniqueId uniqueId, java.lang.Class<?> testClass, java.util.function.Supplier<java.lang.String> displayNameSupplier, JupiterConfiguration configuration)
public final java.lang.Class<?> getTestClass()
public abstract java.util.List<java.lang.Class<?>> getEnclosingTestClasses()
public TestDescriptor.Type getType()
TestDescriptor
TestDescriptor.Type
of this descriptor.null
.TestDescriptor.isContainer()
,
TestDescriptor.isTest()
public java.lang.String getLegacyReportingName()
TestDescriptor
The default implementation simply delegates to TestDescriptor.getDisplayName()
.
null
or blankprotected java.util.Optional<Node.ExecutionMode> getExplicitExecutionMode()
getExplicitExecutionMode
in class JupiterTestDescriptor
protected java.util.Optional<Node.ExecutionMode> getDefaultChildExecutionMode()
getDefaultChildExecutionMode
in class JupiterTestDescriptor
public void setDefaultChildExecutionMode(Node.ExecutionMode defaultChildExecutionMode)
public java.util.Set<ExclusiveResource> getExclusiveResources()
Node
The default implementation returns an empty set.
null
but potentially emptyExclusiveResource
public JupiterEngineExecutionContext prepare(JupiterEngineExecutionContext context)
JupiterTestDescriptor
prepare
in interface Node<JupiterEngineExecutionContext>
prepare
in class JupiterTestDescriptor
Node.cleanUp(EngineExecutionContext)
public JupiterEngineExecutionContext before(JupiterEngineExecutionContext context)
Node
This method will be called once before execution of this node.
The default implementation returns the supplied context
unmodified.
context
- the context to execute innull
Node.execute(EngineExecutionContext, DynamicTestExecutor)
,
Node.after(EngineExecutionContext)
public void after(JupiterEngineExecutionContext context)
Node
This method will be called once after execution of this node.
The default implementation does nothing.
context
- the context to execute inNode.before(C)
,
Node.execute(C, org.junit.platform.engine.support.hierarchical.Node.DynamicTestExecutor)
private TestInstanceFactory resolveTestInstanceFactory(ExtensionRegistry registry)
private TestInstancesProvider testInstancesProvider(JupiterEngineExecutionContext parentExecutionContext, ClassExtensionContext extensionContext)
private TestInstances instantiateAndPostProcessTestInstance(JupiterEngineExecutionContext parentExecutionContext, ExtensionContext extensionContext, ExtensionRegistry registry, ExtensionRegistrar registrar)
protected abstract TestInstances instantiateTestClass(JupiterEngineExecutionContext parentExecutionContext, ExtensionRegistry registry, ExtensionRegistrar registrar, ExtensionContext extensionContext)
protected TestInstances instantiateTestClass(java.util.Optional<TestInstances> outerInstances, ExtensionRegistry registry, ExtensionContext extensionContext)
private java.lang.Object invokeTestInstanceFactory(java.util.Optional<java.lang.Object> outerInstance, ExtensionContext extensionContext)
private java.lang.Object invokeTestClassConstructor(java.util.Optional<java.lang.Object> outerInstance, ExtensionRegistry registry, ExtensionContext extensionContext)
private void invokeTestInstancePostProcessors(java.lang.Object instance, ExtensionRegistry registry, ExtensionContext context)
private void executeAndMaskThrowable(Executable executable)
private void invokeBeforeAllCallbacks(JupiterEngineExecutionContext context)
private void invokeBeforeAllMethods(JupiterEngineExecutionContext context)
private void invokeBeforeAllMethodExecutionExceptionHandlers(ExtensionRegistry registry, ExtensionContext context, java.lang.Throwable throwable)
private void invokeAfterAllMethods(JupiterEngineExecutionContext context)
private void invokeAfterAllMethodExecutionExceptionHandlers(ExtensionRegistry registry, ExtensionContext context, java.lang.Throwable throwable)
private void invokeAfterAllCallbacks(JupiterEngineExecutionContext context)
private void invokeTestInstancePreDestroyCallbacks(JupiterEngineExecutionContext context)
private boolean isPerClassLifecycle(JupiterEngineExecutionContext context)
private void registerBeforeEachMethodAdapters(ExtensionRegistrar registrar)
private void registerAfterEachMethodAdapters(ExtensionRegistrar registrar)
private void registerMethodsAsExtensions(java.util.List<java.lang.reflect.Method> methods, ExtensionRegistrar registrar, java.util.function.Function<java.lang.reflect.Method,Extension> extensionSynthesizer)
private BeforeEachMethodAdapter synthesizeBeforeEachMethodAdapter(java.lang.reflect.Method method)
private AfterEachMethodAdapter synthesizeAfterEachMethodAdapter(java.lang.reflect.Method method)
private void invokeMethodInExtensionContext(java.lang.reflect.Method method, ExtensionContext context, ExtensionRegistry registry, ExecutableInvoker.ReflectiveInterceptorCall.VoidMethodInterceptorCall interceptorCall)