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