public abstract class RunnerBuilder
extends java.lang.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(java.lang.Class<?> testClass)
Override to calculate the correct runner for a test class at runtime.
|
java.util.List<Runner> |
runners(java.lang.Class<?> parent,
java.lang.Class<?>[] children)
Constructs and returns a list of Runners, one for each child class in
children. |
java.util.List<Runner> |
runners(java.lang.Class<?> parent,
java.util.List<java.lang.Class<?>> children) |
Runner |
safeRunnerForClass(java.lang.Class<?> testClass)
Always returns a runner, even if it is just one that prints an error instead of running tests.
|
public abstract Runner runnerForClass(java.lang.Class<?> testClass) throws java.lang.Throwable
testClass - class to be runjava.lang.Throwable - if a runner cannot be constructedpublic Runner safeRunnerForClass(java.lang.Class<?> testClass)
testClass - class to be runpublic java.util.List<Runner> runners(java.lang.Class<?> parent, java.lang.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 java.util.List<Runner> runners(java.lang.Class<?> parent, java.util.List<java.lang.Class<?>> children) throws InitializationError
InitializationError