Interface TestDescriptor
-
- All Known Implementing Classes:
AbstractTestDescriptor,ClassTestDescriptor,EngineDescriptor,JupiterEngineDescriptor,JupiterTestDescriptor,NestedClassTestDescriptor,RunnerTestDescriptor,TestFactoryTestDescriptor,TestMethodTestDescriptor,TestTemplateInvocationTestDescriptor,TestTemplateTestDescriptor,VintageTestDescriptor
@API(status=STABLE, since="1.0") public interface TestDescriptor
Mutable descriptor for a test or container that has been discovered by aTestEngine.- Since:
- 1.0
- See Also:
TestEngine
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classTestDescriptor.TypeSupported types forTestDescriptors.static interfaceTestDescriptor.VisitorVisitor for the tree-likeTestDescriptorstructure.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default voidaccept(TestDescriptor.Visitor visitor)Accept a visitor to the subtree starting with this descriptor.voidaddChild(TestDescriptor descriptor)Add a child to this descriptor.static booleancontainsTests(TestDescriptor testDescriptor)Determine if the supplied descriptor or any of its descendants contains any tests.Optional<? extends TestDescriptor>findByUniqueId(UniqueId uniqueId)Find the descriptor with the supplied unique ID.Set<? extends TestDescriptor>getChildren()Get the immutable set of children of this descriptor.default Set<? extends TestDescriptor>getDescendants()Get the immutable set of all descendants of this descriptor.StringgetDisplayName()Get the display name for this descriptor.default StringgetLegacyReportingName()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.Optional<TestDescriptor>getParent()Get the parent of this descriptor, if available.Optional<TestSource>getSource()Get the source of the test or container described by this descriptor, if available.Set<TestTag>getTags()Get the set of tags associated with this descriptor.TestDescriptor.TypegetType()Determine theTestDescriptor.Typeof this descriptor.UniqueIdgetUniqueId()Get the unique identifier (UID) for this descriptor.default booleanisContainer()Determine if this descriptor describes a container.default booleanisRoot()Determine if this descriptor is a root descriptor.default booleanisTest()Determine if this descriptor describes a test.default booleanmayRegisterTests()Determine if this descriptor may register dynamic tests during execution.default voidprune()Remove this descriptor from the hierarchy unless it is a root or contains tests.voidremoveChild(TestDescriptor descriptor)Remove a child from this descriptor.voidremoveFromHierarchy()Remove this non-root descriptor from its parent and remove all the children from this descriptor.voidsetParent(TestDescriptor parent)Set the parent of this descriptor.
-
-
-
Method Detail
-
getUniqueId
UniqueId getUniqueId()
Get the unique identifier (UID) for this descriptor.Uniqueness must be guaranteed across an entire test plan, regardless of how many engines are used behind the scenes.
- Returns:
- the
UniqueIdfor this descriptor; nevernull
-
getDisplayName
String getDisplayName()
Get the display name for this descriptor.A display name is a human-readable name for a test or container that is typically used for test reporting in IDEs and build tools. Display names may contain spaces, special characters, and emoji, and the format may be customized by
TestEnginesor potentially by end users as well. Consequently, display names should never be parsed; rather, they should be used for display purposes only.- Returns:
- the display name for this descriptor; never
nullor blank - See Also:
getSource()
-
getLegacyReportingName
default String getLegacyReportingName()
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 simply delegates to
getDisplayName().- Returns:
- the legacy reporting name; never
nullor blank
-
getTags
Set<TestTag> getTags()
Get the set of tags associated with this descriptor.- Returns:
- the set of tags associated with this descriptor; never
nullbut potentially empty - See Also:
TestTag
-
getSource
Optional<TestSource> getSource()
Get the source of the test or container described by this descriptor, if available.- See Also:
TestSource
-
getParent
Optional<TestDescriptor> getParent()
Get the parent of this descriptor, if available.
-
setParent
void setParent(TestDescriptor parent)
Set the parent of this descriptor.- Parameters:
parent- the new parent of this descriptor; may benull.
-
getChildren
Set<? extends TestDescriptor> getChildren()
Get the immutable set of children of this descriptor.- Returns:
- the set of children of this descriptor; neither
nullnor mutable, but potentially empty - See Also:
getDescendants()
-
getDescendants
default Set<? extends TestDescriptor> getDescendants()
Get the immutable set of all descendants of this descriptor.A descendant is a child of this descriptor or a child of one of its children, recursively.
- See Also:
getChildren()
-
addChild
void addChild(TestDescriptor descriptor)
Add a child to this descriptor.- Parameters:
descriptor- the child to add to this descriptor; nevernull
-
removeChild
void removeChild(TestDescriptor descriptor)
Remove a child from this descriptor.- Parameters:
descriptor- the child to remove from this descriptor; nevernull
-
removeFromHierarchy
void removeFromHierarchy()
Remove this non-root descriptor from its parent and remove all the children from this descriptor.If this method is invoked on a root descriptor, this method must throw a
JUnitExceptionexplaining that a root cannot be removed from the hierarchy.
-
isRoot
default boolean isRoot()
Determine if this descriptor is a root descriptor.A root descriptor is a descriptor without a parent.
-
getType
TestDescriptor.Type getType()
Determine theTestDescriptor.Typeof this descriptor.- Returns:
- the descriptor type; never
null. - See Also:
isContainer(),isTest()
-
isContainer
default boolean isContainer()
Determine if this descriptor describes a container.The default implementation delegates to
TestDescriptor.Type.isContainer().
-
isTest
default boolean isTest()
Determine if this descriptor describes a test.The default implementation delegates to
TestDescriptor.Type.isTest().
-
mayRegisterTests
default boolean mayRegisterTests()
Determine if this descriptor may register dynamic tests during execution.The default implementation assumes tests are usually known during discovery and thus returns
false.
-
containsTests
static boolean containsTests(TestDescriptor testDescriptor)
Determine if the supplied descriptor or any of its descendants contains any tests.
-
prune
default void prune()
Remove this descriptor from the hierarchy unless it is a root or contains tests.A concrete
TestEnginemay override this method in order to implement a different algorithm or to skip pruning altogether.
-
findByUniqueId
Optional<? extends TestDescriptor> findByUniqueId(UniqueId uniqueId)
Find the descriptor with the supplied unique ID.The search algorithm begins with this descriptor and then searches through its descendants.
- Parameters:
uniqueId- theUniqueIdto search for; nevernull
-
accept
default void accept(TestDescriptor.Visitor visitor)
Accept a visitor to the subtree starting with this descriptor.- Parameters:
visitor- theVisitorto accept; nevernull
-
-