public abstract class RunnerBuilder extends Object
RunnerBuilder
s. 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.InitializationError
public List<Runner> runners(Class<?> parent, List<Class<?>> children) throws InitializationError
InitializationError