org.junit.runner

## Class Runner

- java.lang.Object
- - org.junit.runner.Runner

- All Implemented Interfaces:
    Describable
  Direct Known Subclasses:
    org.junit.internal.runners.JUnit38ClassRunner, ParentRunner

      public abstract class Runner
      extends Object
      implements Describable

  A `Runner` runs tests and notifies a `RunNotifier` of significant events as it does so. You will need to subclass `Runner` when using `RunWith` to invoke a custom runner. When creating a custom runner, in addition to implementing the abstract methods here you must also provide a constructor that takes as an argument the `Class` containing the tests.

  The default runner implementation guarantees that the instances of the test case class will be constructed immediately before running the test and that the runner will retain no reference to the test case instances, generally making them available for garbage collection.
  Since:
    4.0
  See Also:
    `Description`, `RunWith`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Runner()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract Description` | `getDescription()`
    `abstract void` | `run(RunNotifier notifier)` Run the tests for this runner.
    `int` | `testCount()`

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

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

- - ### Constructor Detail

    - #### Runner

          public Runner()

  - ### Method Detail

    - #### getDescription

          public abstract Description getDescription()

      Specified by:
        `getDescription` in interface `Describable`
      Returns:
        a `Description` showing the tests to be run by the receiver

    - #### run

          public abstract void run(RunNotifier notifier)

      Run the tests for this runner.
      Parameters:
        `notifier` - will be notified of events while tests are being run--tests being started, finishing, and failing

    - #### testCount

          public int testCount()

      Returns:
        the number of tests to be run by the receiver