Class MethodOrderer.Random
- java.lang.Object
-
- org.junit.jupiter.api.MethodOrderer.Random
-
- All Implemented Interfaces:
MethodOrderer
- Enclosing interface:
- MethodOrderer
public static class MethodOrderer.Random extends Object implements MethodOrderer
MethodOrderer
that orders methods pseudo-randomly and allows for concurrent execution by default.Custom Seed
By default, the random seed used for ordering methods is the value returned by
System.nanoTime()
. In order to produce repeatable builds, a custom seed may be specified via thejunit.jupiter.execution.order.random.seed
configuration parameter which can be supplied via theLauncher
API, build tools (e.g., Gradle and Maven), a JVM system property, or the JUnit Platform configuration file (i.e., a file namedjunit-platform.properties
in the root of the class path). Consult the User Guide for further information.- See Also:
getDefaultExecutionMode()
,RANDOM_SEED_PROPERTY_NAME
,Random
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.junit.jupiter.api.MethodOrderer
MethodOrderer.Alphanumeric, MethodOrderer.OrderAnnotation, MethodOrderer.Random
-
-
Field Summary
Fields Modifier and Type Field Description static String
RANDOM_SEED_PROPERTY_NAME
Property name used to set the random seed used by thisMethodOrderer
: "junit.jupiter.execution.order.random.seed"
-
Constructor Summary
Constructors Constructor Description Random()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Optional<ExecutionMode>
getDefaultExecutionMode()
Get the defaultExecutionMode
for the test class.void
orderMethods(MethodOrdererContext context)
Order the methods encapsulated in the suppliedMethodOrdererContext
pseudo-randomly.
-
-
-
Field Detail
-
RANDOM_SEED_PROPERTY_NAME
public static final String RANDOM_SEED_PROPERTY_NAME
Property name used to set the random seed used by thisMethodOrderer
: "junit.jupiter.execution.order.random.seed"Supported Values
Supported values include any string that can be converted to a
Long
viaLong.valueOf(String)
.If not specified or if the specified value cannot be converted to a
Long
,System.nanoTime()
will be used as the random seed.- See Also:
- Constant Field Values
-
-
Method Detail
-
orderMethods
public void orderMethods(MethodOrdererContext context)
Order the methods encapsulated in the suppliedMethodOrdererContext
pseudo-randomly.- Specified by:
orderMethods
in interfaceMethodOrderer
- Parameters:
context
- theMethodOrdererContext
containing themethod descriptors
to order; nevernull
- See Also:
MethodOrderer.getDefaultExecutionMode()
-
getDefaultExecutionMode
public Optional<ExecutionMode> getDefaultExecutionMode()
Get the defaultExecutionMode
for the test class.If a custom seed has been specified, this method returns
SAME_THREAD
in order to ensure that the results are repeatable across executions of the test plan. Otherwise, this method returnsCONCURRENT
to allow concurrent execution of randomly ordered methods by default.- Specified by:
getDefaultExecutionMode
in interfaceMethodOrderer
- Returns:
SAME_THREAD
if a custom seed has been configured; otherwise,CONCURRENT
- See Also:
MethodOrderer.orderMethods(MethodOrdererContext)
-
-