Type Parameters:
C - the type of EngineExecutionContext used by the HierarchicalTestEngine

@API(status=MAINTAINED, since="1.0", consumers="org.junit.platform.engine.support.hierarchical") public interface Node<C extends EngineExecutionContext>
A node within the execution hierarchy.
Since:
1.0
See Also:
  • Method Details

    • prepare

      default C prepare(C context) throws Exception
      Prepare the supplied context prior to execution.

      The default implementation returns the supplied context unmodified.

      Throws:
      Exception
      See Also:
    • cleanUp

      default void cleanUp(C context) throws Exception
      Clean up the supplied context after execution.

      The default implementation does nothing.

      Parameters:
      context - the context to execute in
      Throws:
      Exception
      Since:
      1.1
      See Also:
    • shouldBeSkipped

      default Node.SkipResult shouldBeSkipped(C context) throws Exception
      Determine if the execution of the supplied context should be skipped.

      The default implementation returns Node.SkipResult.doNotSkip().

      Throws:
      Exception
    • before

      default C before(C context) throws Exception
      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
      Throws:
      Exception
      See Also:
    • execute

      default C execute(C context, Node.DynamicTestExecutor dynamicTestExecutor) throws Exception
      Execute the behavior of this node.

      Containers typically do not implement this method since the HierarchicalTestEngine handles execution of their children.

      The supplied dynamicTestExecutor may be used to submit additional dynamic tests for immediate execution.

      The default implementation returns the supplied context unmodified.

      Parameters:
      context - the context to execute in
      dynamicTestExecutor - the executor to submit dynamic tests to
      Returns:
      the new context to be used for children of this node and for the after behavior of the parent of this node, if any
      Throws:
      Exception
      See Also:
    • after

      default void after(C context) throws Exception
      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
      Throws:
      Exception
      See Also:
    • around

      @API(status=STABLE, since="1.10") default void around(C context, Node.Invocation<C> invocation) throws Exception
      Parameters:
      context - context the context to execute in
      invocation - the wrapped invocation (must be invoked exactly once)
      Throws:
      Exception
      Since:
      1.4
    • nodeSkipped

      @API(status=STABLE, since="1.10", consumers="org.junit.platform.engine.support.hierarchical") default void nodeSkipped(C context, TestDescriptor testDescriptor, Node.SkipResult result)
      Callback invoked when the execution of this node has been skipped.

      The default implementation does nothing.

      Parameters:
      context - the execution context
      testDescriptor - the test descriptor that was skipped
      result - the result of skipped execution
      Since:
      1.4
    • nodeFinished

      @API(status=STABLE, since="1.10", consumers="org.junit.platform.engine.support.hierarchical") default void nodeFinished(C context, TestDescriptor testDescriptor, TestExecutionResult result)
      Callback invoked when the execution of this node has finished.

      The default implementation does nothing.

      Parameters:
      context - the execution context
      testDescriptor - the test descriptor that was executed
      result - the result of the execution
      Since:
      1.4
    • getExclusiveResources

      @API(status=STABLE, since="1.10", consumers="org.junit.platform.engine.support.hierarchical") default Set<ExclusiveResource> getExclusiveResources()
      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
      Since:
      1.3
      See Also:
    • getExecutionMode

      @API(status=STABLE, since="1.10", consumers="org.junit.platform.engine.support.hierarchical") default Node.ExecutionMode getExecutionMode()
      Get the preferred of execution mode for parallel execution of this node.

      The default implementation returns Node.ExecutionMode.CONCURRENT.

      Returns:
      the preferred execution mode of this node; never null
      Since:
      1.3
      See Also: