Interface Node<C extends EngineExecutionContext>

  • 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:
    HierarchicalTestEngine
    • Method Detail

      • prepare

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

        The default implementation returns the supplied context unmodified.

        Throws:
        java.lang.Exception
        See Also:
        cleanUp(EngineExecutionContext)
      • cleanUp

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

        The default implementation does nothing.

        Parameters:
        context - the context to execute in
        Throws:
        java.lang.Exception
        Since:
        1.1
        See Also:
        prepare(EngineExecutionContext)
      • shouldBeSkipped

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

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

        Throws:
        java.lang.Exception
      • before

        default C before​(C context)
                  throws java.lang.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:
        java.lang.Exception
        See Also:
        execute(EngineExecutionContext, DynamicTestExecutor), after(EngineExecutionContext)
      • execute

        default C execute​(C context,
                          Node.DynamicTestExecutor dynamicTestExecutor)
                   throws java.lang.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:
        java.lang.Exception
        See Also:
        before(C), after(C)
      • nodeSkipped

        @API(status=EXPERIMENTAL,
             since="1.4",
             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=EXPERIMENTAL,
             since="1.4",
             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=EXPERIMENTAL,
             since="1.3",
             consumers="org.junit.platform.engine.support.hierarchical")
        default java.util.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:
        ExclusiveResource
      • getExecutionMode

        @API(status=EXPERIMENTAL,
             since="1.3",
             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:
        Node.ExecutionMode