org.apache.tools.ant.taskdefs.optional.junit

## Class JUnitTest

- java.lang.Object
- - org.apache.tools.ant.taskdefs.optional.junit.BaseTest
  - - org.apache.tools.ant.taskdefs.optional.junit.JUnitTest

- All Implemented Interfaces:
    java.lang.Cloneable

      public class JUnitTest
      extends BaseTest
      implements java.lang.Cloneable

  Run a single JUnit test.

  The JUnit test is actually run by `JUnitTestRunner`. So read the doc comments for that class :)

  Since:
    Ant 1.2
  See Also:
    `JUnitTask`, `JUnitTestRunner`

- - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.optional.junit.BaseTest

      `destDir, errorProperty, failureProperty, filtertrace, fork, formatters, haltOnError, haltOnFail, ifProperty, unlessProperty`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JUnitTest()` No arg constructor.
    `JUnitTest(java.lang.String name)` Constructor with name.
    `JUnitTest(java.lang.String name, boolean haltOnError, boolean haltOnFailure, boolean filtertrace)` Constructor with options.
    `JUnitTest(java.lang.String name, boolean haltOnError, boolean haltOnFailure, boolean filtertrace, java.lang.String[] methods)` Constructor with options.
    `JUnitTest(java.lang.String name, boolean haltOnError, boolean haltOnFailure, boolean filtertrace, java.lang.String[] methods, int thread)` Constructor with options.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()`
    `long` | `errorCount()` Get the number of errors.
    `long` | `failureCount()` Get the number of failures.
    `FormatterElement[]` | `getFormatters()` Get the formatters set for this test.
    `java.lang.String` | `getName()` Get the name of the test class.
    `java.lang.String` | `getOutfile()` Get the name of the output file
    `java.util.Properties` | `getProperties()` Get the properties used in the test.
    `long` | `getRunTime()` Get the run time.
    `int` | `getThread()` Get the Ant id of the thread running the test.
    `static java.lang.String[]` | `parseTestMethodNamesList(java.lang.String methodNames)` Parses a comma-separated list of method names and check their validity.
    `long` | `runCount()` Get the number of runs.
    `void` | `setCounts(long runs, long failures, long errors)` Set the number of runs, failures, errors, and skipped tests.
    `void` | `setCounts(long runs, long failures, long errors, long skips)` Set the number of runs, failures, errors, and skipped tests.
    `void` | `setMethods(java.lang.String value)` Sets names of individual test methods to be executed.
    `void` | `setName(java.lang.String value)` Set the name of the test class.
    `void` | `setOutfile(java.lang.String value)` Set the name of the output file.
    `void` | `setProperties(java.util.Hashtable p)` Set the properties to be used in the test.
    `void` | `setRunTime(long runTime)` Set the runtime.
    `void` | `setThread(int thread)` Set the thread id
    `boolean` | `shouldRun(Project p)` Check if this test should run based on the if and unless attributes.
    `long` | `skipCount()` Get the number of skipped tests.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.optional.junit.BaseTest

      `addFormatter, getErrorProperty, getFailureProperty, getFiltertrace, getFork, getHaltonerror, getHaltonfailure, getIfCondition, getTodir, getUnlessCondition, isSkipNonTests, setErrorProperty, setFailureProperty, setFiltertrace, setFork, setHaltonerror, setHaltonfailure, setIf, setIf, setSkipNonTests, setTodir, setUnless, setUnless`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### JUnitTest

          public JUnitTest()

      No arg constructor.

    - #### JUnitTest

          public JUnitTest(java.lang.String name)

      Constructor with name.
      Parameters:
        `name` - the name of the test.

    - #### JUnitTest

          public JUnitTest(java.lang.String name,
                           boolean haltOnError,
                           boolean haltOnFailure,
                           boolean filtertrace)

      Constructor with options.
      Parameters:
        `name` - the name of the test.
        `haltOnError` - if true halt the tests if there is an error.
        `haltOnFailure` - if true halt the tests if there is a failure.
        `filtertrace` - if true filter stack traces.

    - #### JUnitTest

          public JUnitTest(java.lang.String name,
                           boolean haltOnError,
                           boolean haltOnFailure,
                           boolean filtertrace,
                           java.lang.String[] methods)

      Constructor with options.
      Parameters:
        `name` - the name of the test.
        `haltOnError` - if true halt the tests if there is an error.
        `haltOnFailure` - if true halt the tests if there is a failure.
        `filtertrace` - if true filter stack traces.
        `methods` - if non-null run only these test methods
      Since:
        1.8.2

    - #### JUnitTest

          public JUnitTest(java.lang.String name,
                           boolean haltOnError,
                           boolean haltOnFailure,
                           boolean filtertrace,
                           java.lang.String[] methods,
                           int thread)

      Constructor with options.
      Parameters:
        `name` - the name of the test.
        `haltOnError` - if true halt the tests if there is an error.
        `haltOnFailure` - if true halt the tests if there is a failure.
        `filtertrace` - if true filter stack traces.
        `methods` - if non-null run only these test methods
        `thread` - Ant thread ID in which test is currently running
      Since:
        1.9.4

  - ### Method Detail

    - #### setMethods

          public void setMethods(java.lang.String value)

      Sets names of individual test methods to be executed.
      Parameters:
        `value` - comma-separated list of names of individual test methods to be executed, or `null` if all test methods should be executed
      Since:
        1.8.2

    - #### setName

          public void setName(java.lang.String value)

      Set the name of the test class.
      Parameters:
        `value` - the name to use.

    - #### setThread

          public void setThread(int thread)

      Set the thread id
      Parameters:
        `thread` - the Ant id of the thread running this test (this is not the system process or thread id) (this will be 0 in single-threaded mode).
      Since:
        Ant 1.9.4

    - #### setOutfile

          public void setOutfile(java.lang.String value)

      Set the name of the output file.
      Parameters:
        `value` - the name of the output file to use.

    - #### parseTestMethodNamesList

          public static java.lang.String[] parseTestMethodNamesList(java.lang.String methodNames)
                                                             throws java.lang.IllegalArgumentException

      Parses a comma-separated list of method names and check their validity.
      Parameters:
        `methodNames` - comma-separated list of method names to be parsed
      Returns:
        array of individual test method names
      Throws:
        `java.lang.IllegalArgumentException` - if the given string is `null` or if it is not a comma-separated list of valid Java identifiers; an empty string is acceptable and is handled as an empty list
      Since:
        1.8.2

    - #### getName

          public java.lang.String getName()

      Get the name of the test class.
      Returns:
        the name of the test.

    - #### getThread

          public int getThread()

      Get the Ant id of the thread running the test.
      Returns:
        the thread id

    - #### getOutfile

          public java.lang.String getOutfile()

      Get the name of the output file
      Returns:
        the name of the output file.

    - #### setCounts

          public void setCounts(long runs,
                                long failures,
                                long errors)

      Set the number of runs, failures, errors, and skipped tests.
      Parameters:
        `runs` - the number of runs.
        `failures` - the number of failures.
        `errors` - the number of errors. Kept for backward compatibility with Ant 1.8.4

    - #### setCounts

          public void setCounts(long runs,
                                long failures,
                                long errors,
                                long skips)

      Set the number of runs, failures, errors, and skipped tests.
      Parameters:
        `runs` - the number of runs.
        `failures` - the number of failures.
        `errors` - the number of errors.
        `skips` - the number of skipped tests.
      Since:
        Ant 1.9.0

    - #### setRunTime

          public void setRunTime(long runTime)

      Set the runtime.
      Parameters:
        `runTime` - the time in milliseconds.

    - #### runCount

          public long runCount()

      Get the number of runs.
      Returns:
        the number of runs.

    - #### failureCount

          public long failureCount()

      Get the number of failures.
      Returns:
        the number of failures.

    - #### errorCount

          public long errorCount()

      Get the number of errors.
      Returns:
        the number of errors.

    - #### skipCount

          public long skipCount()

      Get the number of skipped tests.
      Returns:
        the number of skipped tests.

    - #### getRunTime

          public long getRunTime()

      Get the run time.
      Returns:
        the run time in milliseconds.

    - #### getProperties

          public java.util.Properties getProperties()

      Get the properties used in the test.
      Returns:
        the properties.

    - #### setProperties

          public void setProperties(java.util.Hashtable p)

      Set the properties to be used in the test.
      Parameters:
        `p` - the properties. This is a copy of the projects ant properties.

    - #### shouldRun

          public boolean shouldRun(Project p)

      Check if this test should run based on the if and unless attributes.
      Parameters:
        `p` - the project to use to check if the if and unless properties exist in.
      Returns:
        true if this test or testsuite should be run.

    - #### getFormatters

          public FormatterElement[] getFormatters()

      Get the formatters set for this test.
      Returns:
        the formatters as an array.

    - #### clone

          public java.lang.Object clone()

      Overrides:
        `clone` in class `java.lang.Object`
      Returns:
        a clone of this test.
      Since:
        Ant 1.5