@API(value=Experimental) public interface TestDescriptor
TestEngine
.TestEngine
Modifier and Type | Interface and Description |
---|---|
static class |
TestDescriptor.Type
Supported types for
TestDescriptors . |
static interface |
TestDescriptor.Visitor
Visitor for the tree-like
TestDescriptor structure. |
Modifier and Type | Method and Description |
---|---|
default void |
accept(TestDescriptor.Visitor visitor)
Accept a visitor to the subtree starting with this descriptor.
|
void |
addChild(TestDescriptor descriptor)
Add a child to this descriptor.
|
static boolean |
containsTests(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.
|
String |
getDisplayName()
Get the display name for this descriptor.
|
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.
|
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.Type |
getType()
Determine the
TestDescriptor.Type of this descriptor. |
UniqueId |
getUniqueId()
Get the unique identifier (UID) for this descriptor.
|
default boolean |
isContainer()
Determine if this descriptor describes a container.
|
default boolean |
isRoot()
Determine if this descriptor is a root descriptor.
|
default boolean |
isTest()
Determine if this descriptor describes a test.
|
default boolean |
mayRegisterTests()
Determine if this descriptor may register dynamic tests during execution.
|
default void |
prune()
Remove this descriptor from the hierarchy unless it is a root or contains
tests.
|
void |
removeChild(TestDescriptor descriptor)
Remove a child from this descriptor.
|
void |
removeFromHierarchy()
Remove this non-root descriptor from its parent and remove all the
children from this descriptor.
|
void |
setParent(TestDescriptor parent)
Set the parent of this descriptor.
|
UniqueId getUniqueId()
Uniqueness must be guaranteed across an entire test plan, regardless of how many engines are used behind the scenes.
UniqueId
for this descriptor; never null
String getDisplayName()
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 TestEngines
or
potentially by end users as well. Consequently, display names should
never be parsed; rather, they should be used for display purposes only.
null
or blankgetSource()
default String getLegacyReportingName()
The default implementation simply delegates to getDisplayName()
.
null
or blankSet<TestTag> getTags()
null
but potentially emptyTestTag
Optional<TestSource> getSource()
TestSource
Optional<TestDescriptor> getParent()
void setParent(TestDescriptor parent)
parent
- the new parent of this descriptor; may be null
.Set<? extends TestDescriptor> getChildren()
null
nor mutable, but potentially emptygetDescendants()
default Set<? extends TestDescriptor> getDescendants()
A descendant is a child of this descriptor or a child of one of its children, recursively.
getChildren()
void addChild(TestDescriptor descriptor)
descriptor
- the child to add to this descriptor; never null
void removeChild(TestDescriptor descriptor)
descriptor
- the child to remove from this descriptor; never
null
void removeFromHierarchy()
If this method is invoked on a root descriptor,
this method must throw a JUnitException
explaining that a root cannot be removed from the
hierarchy.
default boolean isRoot()
A root descriptor is a descriptor without a parent.
TestDescriptor.Type getType()
TestDescriptor.Type
of this descriptor.null
.isContainer()
,
isTest()
default boolean isContainer()
The default implementation delegates to TestDescriptor.Type.isContainer()
.
default boolean isTest()
The default implementation delegates to TestDescriptor.Type.isTest()
.
default boolean mayRegisterTests()
The default implementation assumes tests are usually known during
discovery and thus returns false
.
static boolean containsTests(TestDescriptor testDescriptor)
default void prune()
A concrete TestEngine
may override this method in order to
implement a different algorithm or to skip pruning altogether.
Optional<? extends TestDescriptor> findByUniqueId(UniqueId uniqueId)
The search algorithm begins with this descriptor and then searches through its descendants.
uniqueId
- the UniqueId
to search for; never null
default void accept(TestDescriptor.Visitor visitor)
visitor
- the Visitor
to accept; never null