public abstract class RunnerBuilder extends Object
RunnerBuilders. A custom runner class with a constructor taking
a RunnerBuilder parameter will be passed the instance of RunnerBuilder used to build that runner itself.
For example,
imagine a custom runner that builds suites based on a list of classes in a text file:
\@RunWith(TextFileSuite.class)
\@SuiteSpecFile("mysuite.txt")
class MySuite {}
The implementation of TextFileSuite might include:
public TextFileSuite(Class testClass, RunnerBuilder builder) {
// ...
for (String className : readClassNames())
addRunner(builder.runnerForClass(Class.forName(className)));
// ...
}
Suite| Constructor and Description |
|---|
RunnerBuilder() |
| Modifier and Type | Method and Description |
|---|---|
abstract Runner |
runnerForClass(Class<?> testClass)
Override to calculate the correct runner for a test class at runtime.
|
List<Runner> |
runners(Class<?> parent,
Class<?>[] children)
Constructs and returns a list of Runners, one for each child class in
children. |
List<Runner> |
runners(Class<?> parent,
List<Class<?>> children) |
Runner |
safeRunnerForClass(Class<?> testClass)
Always returns a runner, even if it is just one that prints an error instead of running tests.
|
public abstract Runner runnerForClass(Class<?> testClass) throws Throwable
testClass - class to be runThrowable - if a runner cannot be constructedpublic Runner safeRunnerForClass(Class<?> testClass)
testClass - class to be runpublic List<Runner> runners(Class<?> parent, Class<?>[] children) throws InitializationError
children. Care is taken to avoid infinite recursion:
this builder will throw an exception if it is requested for another
runner for parent before this call completes.InitializationErrorpublic List<Runner> runners(Class<?> parent, List<Class<?>> children) throws InitializationError
InitializationError