org.junit.runners
Class Suite

java.lang.Object
  extended by org.junit.runner.Runner
      extended by org.junit.runners.ParentRunner<Runner>
          extended by org.junit.runners.Suite
All Implemented Interfaces:
Describable, Filterable, 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.


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, collectInitializationErrors, filter, getDescription, getName, getTestClass, run, setScheduler, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses
 
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>