JUnitLauncherTask (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs.optional.junitlauncher.confined, class: JUnitLauncherTask

# Class JUnitLauncherTask

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.optional.junitlauncher.confined.JUnitLauncherTask

All Implemented Interfaces:
  `Cloneable`

public class JUnitLauncherTask extends Task
An Ant `Task` responsible for launching the JUnit platform for running tests. This requires a minimum of JUnit 5, since that's the version in which the JUnit platform launcher APIs were introduced.

This task in itself doesn't run the JUnit tests, instead the sole responsibility of this task is to setup the JUnit platform launcher, build requests, launch those requests and then parse the result of the execution to present in a way that's been configured on this Ant task.

Furthermore, this task allows users control over which classes to select for passing on to the JUnit 5 platform for test execution. It however, is solely the JUnit 5 platform, backed by test engines that decide and execute the tests.

See Also:
  - JUnit 5 documentation

- ## Field Summary

  ### Fields inherited from class Task

  `target, taskName, taskType, wrapper`
  Modifier and Type
  Field
  Description
  `protected Target`
  `target`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskName`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskType`
  Deprecated.
  since 1.6.x.
  `protected RuntimeConfigurable`
  `wrapper`
  Deprecated.
  since 1.6.x.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JUnitLauncherTask()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addConfiguredClassPath(Path path)`
  Adds the `Path` to the classpath which will be used for execution of the tests
  `void`
  `addConfiguredListener(ListenerDefinition listener)`
  Adds a `listener` which will be enrolled for listening to test execution events
  `void`
  `addConfiguredTest(SingleTestClass test)`
  Adds a `SingleTestClass` that will be passed on to the underlying JUnit platform for possible execution of the test
  `void`
  `addConfiguredTestClasses(TestClasses testClasses)`
  Adds `TestClasses` that will be passed on to the underlying JUnit platform for possible execution of the tests
  `protected ExecuteWatchdog`
  `createExecuteWatchdog(long timeout)`
  `void`
  `execute()`
  Called by the project to let the task do its work.
  `void`
  `setExcludeTags(String excludes)`
  Tags to exclude.
  `void`
  `setFailureProperty(String failureProperty)`
  `void`
  `setHaltonfailure(boolean haltonfailure)`
  `void`
  `setIncludeTags(String includes)`
  Tags to include.
  `void`
  `setPrintSummary(boolean printSummary)`

  ### Methods inherited from class Task

  `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`
  Modifier and Type
  Method
  Description
  `final void`
  `bindToOwner(Task owner)`
  Bind a task to another; use this when configuring a newly created task to do work on behalf of another.
  `Target`
  `getOwningTarget()`
  Returns the container target of this task.
  `RuntimeConfigurable`
  `getRuntimeConfigurableWrapper()`
  Returns the wrapper used for runtime configuration.
  `String`
  `getTaskName()`
  Returns the name to use in logging messages.
  `String`
  `getTaskType()`
  Return the type of task.
  `protected RuntimeConfigurable`
  `getWrapper()`
  Return the runtime configurable structure for this task.
  `protected void`
  `handleErrorFlush(String output)`
  Handles an error line by logging it with the WARN priority.
  `protected void`
  `handleErrorOutput(String output)`
  Handles an error output by logging it with the WARN priority.
  `protected void`
  `handleFlush(String output)`
  Handles output by logging it with the INFO priority.
  `protected int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handle an input request by this task.
  `protected void`
  `handleOutput(String output)`
  Handles output by logging it with the INFO priority.
  `void`
  `init()`
  Called by the project to let the task initialize properly.
  `protected final boolean`
  `isInvalid()`
  Has this task been marked invalid?
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(String msg, Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `maybeConfigure()`
  Configures this task - if it hasn't been done already.
  `final void`
  `perform()`
  Performs this task if it's still valid, or gets a replacement version and performs that otherwise.
  `void`
  `reconfigure()`
  Force the task to be reconfigured from its RuntimeConfigurable.
  `void`
  `setOwningTarget(Target target)`
  Sets the target container of this task.
  `void`
  `setRuntimeConfigurableWrapper(RuntimeConfigurable wrapper)`
  Sets the wrapper to be used for runtime configuration.
  `void`
  `setTaskName(String name)`
  Sets the name to use in logging messages.
  `void`
  `setTaskType(String type)`
  Sets the name with which the task has been invoked.

  ### Methods inherited from class ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### JUnitLauncherTask

    public JUnitLauncherTask()

- ## Method Details

  - ### execute

    public void execute() throws BuildException
    Description copied from class: `Task`
    Called by the project to let the task do its work. This method may be called more than once, if the task is invoked more than once. For example, if target1 and target2 both depend on target3, then running "ant target1 target2" will run all tasks in target3 twice.
    Overrides:
      `execute` in class `Task`
    Throws:
      `BuildException` - if something goes wrong with the build.

  - ### addConfiguredClassPath

    public void addConfiguredClassPath(Path path)
    Adds the `Path` to the classpath which will be used for execution of the tests
    Parameters:
      `path` - The classpath

  - ### addConfiguredTest

    public void addConfiguredTest(SingleTestClass test)
    Adds a `SingleTestClass` that will be passed on to the underlying JUnit platform for possible execution of the test
    Parameters:
      `test` - The test

  - ### addConfiguredTestClasses

    public void addConfiguredTestClasses(TestClasses testClasses)
    Adds `TestClasses` that will be passed on to the underlying JUnit platform for possible execution of the tests
    Parameters:
      `testClasses` - The test classes

  - ### addConfiguredListener

    public void addConfiguredListener(ListenerDefinition listener)
    Adds a `listener` which will be enrolled for listening to test execution events
    Parameters:
      `listener` - The listener

  - ### setHaltonfailure

    public void setHaltonfailure(boolean haltonfailure)

  - ### setFailureProperty

    public void setFailureProperty(String failureProperty)

  - ### setPrintSummary

    public void setPrintSummary(boolean printSummary)

  - ### setIncludeTags

    public void setIncludeTags(String includes)
    Tags to include. Will trim each tag.
    Parameters:
      `includes` - comma separated list of tags to include while running the tests.
    Since:
      Ant 1.10.7

  - ### setExcludeTags

    public void setExcludeTags(String excludes)
    Tags to exclude. Will trim each tag.
    Parameters:
      `excludes` - comma separated list of tags to exclude while running the tests.
    Since:
      Ant 1.10.7

  - ### createExecuteWatchdog

    protected ExecuteWatchdog createExecuteWatchdog(long timeout)