## 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
`Runner()`

Method Summary
`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

Copyright © 2002–2020 JUnit. All rights reserved.