## org.junit.runners
Class Suite

    java.lang.Object
      org.junit.runner.Runner
          org.junit.runners.ParentRunner<Runner>
              org.junit.runners.Suite

All Implemented Interfaces:
  Describable, Filterable, Orderable, Sortable

Direct Known Subclasses:
  Categories, Enclosed, Parameterized

    public class Suite

extends ParentRunner<Runner>

Using `Suite` as a runner allows you to manually build a suite containing tests from many classes. It is the JUnit 4 equivalent of the JUnit 3.8.x static `Test` `suite()` method. To use it, annotate a class with `@RunWith(Suite.class)` and `@SuiteClasses({TestClass1.class, ...})`. When you run this class, it will run all the tests in all the suite classes.

Since:
  4.0

Nested Class Summary
`static interface` `Suite.SuiteClasses` The `SuiteClasses` annotation specifies the classes to be run when a class annotated with `@RunWith(Suite.class)` is run.

Constructor Summary
`protected` `Suite(Class<?> klass, Class<?>[] suiteClasses)` Call this when the default builder is good enough.
`protected` `Suite(Class<?> klass, List<Runner> runners)` Called by this class and subclasses once the runners making up the suite have been determined
`` `Suite(Class<?> klass, RunnerBuilder builder)` Called reflectively on classes annotated with `@RunWith(Suite.class)`
`` `Suite(RunnerBuilder builder, Class<?>[] classes)` Call this when there is no single root class (for example, multiple class names passed on the command line to `JUnitCore`
`protected` `Suite(RunnerBuilder builder, Class<?> klass, Class<?>[] suiteClasses)` Called by this class and subclasses once the classes making up the suite have been determined

Method Summary
`protected Description` `describeChild(Runner child)` Returns a `Description` for `child`, which can be assumed to be an element of the list returned by `ParentRunner.getChildren()`
`static Runner` `emptySuite()` Returns an empty suite.
`protected List<Runner>` `getChildren()` Returns a list of objects that define the children of this Runner.
`protected void` `runChild(Runner runner, RunNotifier notifier)` Runs the test corresponding to `child`, which can be assumed to be an element of the list returned by `ParentRunner.getChildren()`.

Methods inherited from class org.junit.runners.ParentRunner
`childrenInvoker, classBlock, classRules, collectInitializationErrors, createTestClass, filter, getDescription, getName, getRunnerAnnotations, getTestClass, isIgnored, order, run, runLeaf, setScheduler, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses, withInterruptIsolation`

Methods inherited from class org.junit.runner.Runner
`testCount`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Suite

    public Suite(Class<?> klass,
                 RunnerBuilder builder)
          throws InitializationError

  Called reflectively on classes annotated with `@RunWith(Suite.class)`

  Parameters:
    `klass` - the root class
    `builder` - builds runners for classes in the suite
  Throws:
    `InitializationError`

### Suite

    public Suite(RunnerBuilder builder,
                 Class<?>[] classes)
          throws InitializationError

  Call this when there is no single root class (for example, multiple class names passed on the command line to `JUnitCore`

  Parameters:
    `builder` - builds runners for classes in the suite
    `classes` - the classes in the suite
  Throws:
    `InitializationError`

### Suite

    protected Suite(Class<?> klass,
                    Class<?>[] suiteClasses)
             throws InitializationError

  Call this when the default builder is good enough. Left in for compatibility with JUnit 4.4.

  Parameters:
    `klass` - the root of the suite
    `suiteClasses` - the classes in the suite
  Throws:
    `InitializationError`

### Suite

    protected Suite(RunnerBuilder builder,
                    Class<?> klass,
                    Class<?>[] suiteClasses)
             throws InitializationError

  Called by this class and subclasses once the classes making up the suite have been determined

  Parameters:
    `builder` - builds runners for classes in the suite
    `klass` - the root of the suite
    `suiteClasses` - the classes in the suite
  Throws:
    `InitializationError`

### Suite

    protected Suite(Class<?> klass,
                    List<Runner> runners)
             throws InitializationError

  Called by this class and subclasses once the runners making up the suite have been determined

  Parameters:
    `klass` - root of the suite
    `runners` - for each class in the suite, a `Runner`
  Throws:
    `InitializationError`

Method Detail

### emptySuite

    public static Runner emptySuite()

  Returns an empty suite.

### getChildren

    protected List<Runner> getChildren()

  Description copied from class: `ParentRunner`
  Returns a list of objects that define the children of this Runner.

  Specified by:
    `getChildren` in class `ParentRunner<Runner>`

### describeChild

    protected Description describeChild(Runner child)

  Description copied from class: `ParentRunner`
  Returns a `Description` for `child`, which can be assumed to be an element of the list returned by `ParentRunner.getChildren()`

  Specified by:
    `describeChild` in class `ParentRunner<Runner>`

### runChild

    protected void runChild(Runner runner,
                            RunNotifier notifier)

  Description copied from class: `ParentRunner`
  Runs the test corresponding to `child`, which can be assumed to be an element of the list returned by `ParentRunner.getChildren()`. Subclasses are responsible for making sure that relevant test events are reported through `notifier`

  Specified by:
    `runChild` in class `ParentRunner<Runner>`

Copyright © 2002–2020 JUnit. All rights reserved.