Package org.junit.runner
Class Request
java.lang.Object
org.junit.runner.Request
- Direct Known Subclasses:
FilterRequest
,MemoizingRequest
,SortingRequest
A
Request
is an abstract description of tests to be run. Older versions of
JUnit did not need such a concept--tests to be run were described either by classes containing
tests or a tree of Test
s. However, we want to support filtering and sorting,
so we need a more abstract specification than the tests themselves and a richer
specification than just the classes.
The flow when JUnit runs tests is that a Request
specifies some tests to be run ->
a Runner
is created for each class implied by the Request
->
the Runner
returns a detailed Description
which is a tree structure of the tests to be run.
- Since:
- 4.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Request
Create aRequest
that, when processed, will run all the tests in a class.static Request
Create aRequest
that, when processed, will run all the tests in a set of classes with the defaultComputer
.static Request
Create aRequest
that, when processed, will run all the tests in a set of classes.static Request
classWithoutSuiteMethod
(Class<?> clazz) Create aRequest
that, when processed, will run all the tests in a class.static Request
errorReport
(Class<?> klass, Throwable cause) Creates aRequest
that, when processed, will report an error for the given test class with the given cause.filterWith
(Description desiredDescription) Returns a Request that only runs tests whoseDescription
matches the given description.filterWith
(Filter filter) Returns a Request that only contains those tests that should run whenfilter
is appliedabstract Runner
Returns aRunner
for this Requeststatic Request
Create aRequest
that, when processed, will run a single test.Returns a Request whose Tests can be run in a certain order, defined byordering
static Request
sortWith
(Comparator<Description> comparator) Returns a Request whose Tests can be run in a certain order, defined bycomparator
-
Constructor Details
-
Request
public Request()
-
-
Method Details
-
method
Create aRequest
that, when processed, will run a single test. This is done by filtering out all other tests. This method is used to support rerunning single tests.- Parameters:
clazz
- the class of the testmethodName
- the name of the test- Returns:
- a
Request
that will cause a single test be run
-
aClass
Create aRequest
that, when processed, will run all the tests in a class. The odd name is necessary becauseclass
is a reserved word.- Parameters:
clazz
- the class containing the tests- Returns:
- a
Request
that will cause all tests in the class to be run
-
classWithoutSuiteMethod
Create aRequest
that, when processed, will run all the tests in a class. If the class has a suite() method, it will be ignored.- Parameters:
clazz
- the class containing the tests- Returns:
- a
Request
that will cause all tests in the class to be run
-
classes
Create aRequest
that, when processed, will run all the tests in a set of classes.- Parameters:
computer
- Helps construct Runners from classesclasses
- the classes containing the tests- Returns:
- a
Request
that will cause all tests in the classes to be run
-
classes
Create aRequest
that, when processed, will run all the tests in a set of classes with the defaultComputer
.- Parameters:
classes
- the classes containing the tests- Returns:
- a
Request
that will cause all tests in the classes to be run
-
errorReport
Creates aRequest
that, when processed, will report an error for the given test class with the given cause. -
runner
- Parameters:
runner
- the runner to return- Returns:
- a
Request
that will run the given runner when invoked
-
getRunner
Returns aRunner
for this Request- Returns:
- corresponding
Runner
for this Request
-
filterWith
Returns a Request that only contains those tests that should run whenfilter
is applied- Parameters:
filter
- TheFilter
to apply to this Request- Returns:
- the filtered Request
-
filterWith
Returns a Request that only runs tests whoseDescription
matches the given description.Returns an empty
Request
ifdesiredDescription
is not a single test and filters all but the single test ifdesiredDescription
is a single test.- Parameters:
desiredDescription
-Description
of those tests that should be run- Returns:
- the filtered Request
-
sortWith
Returns a Request whose Tests can be run in a certain order, defined bycomparator
For example, here is code to run a test suite in alphabetical order:
private static Comparator<Description> forward() { return new Comparator<Description>() { public int compare(Description o1, Description o2) { return o1.getDisplayName().compareTo(o2.getDisplayName()); } }; } public static main() { new JUnitCore().run(Request.aClass(AllTests.class).sortWith(forward())); }
- Parameters:
comparator
- definition of the order of the tests in this Request- Returns:
- a Request with ordered Tests
-
orderWith
Returns a Request whose Tests can be run in a certain order, defined byordering
For example, here is code to run a test suite in reverse order:
private static Ordering reverse() { return new Ordering() { public List<Description> orderItems(Collection<Description> descriptions) { List<Description> ordered = new ArrayList<>(descriptions); Collections.reverse(ordered); return ordered; } } } public static main() { new JUnitCore().run(Request.aClass(AllTests.class).orderWith(reverse())); }
- Returns:
- a Request with ordered Tests
- Since:
- 4.13
-