blob: d728dd82c591aad52321cf7905d2e322a012d8f1 [file] [log] [blame]
package org.junit.runner;
import org.junit.runner.notification.RunNotifier;
/**
* A <code>Runner</code> runs tests and notifies a {@link org.junit.runner.notification.RunNotifier}
* of significant events as it does so. You will need to subclass <code>Runner</code>
* when using {@link org.junit.runner.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 {@link Class} containing
* the tests.
*
* <p>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.
*
* @see org.junit.runner.Description
* @see org.junit.runner.RunWith
* @since 4.0
*/
public abstract class Runner implements Describable {
/*
* (non-Javadoc)
* @see org.junit.runner.Describable#getDescription()
*/
public abstract Description getDescription();
/**
* Run the tests for this runner.
*
* @param notifier will be notified of events while tests are being run--tests being
* started, finishing, and failing
*/
public abstract void run(RunNotifier notifier);
/**
* @return the number of tests to be run by the receiver
*/
public int testCount() {
return getDescription().testCount();
}
}