public static class ClassOrderer.Random extends java.lang.Object implements ClassOrderer
ClassOrderer that orders classes pseudo-randomly.
By default, the random seed used for ordering classes is the
value returned by System.nanoTime() during static initialization
of this class. In order to support repeatable builds, the value of the
default random seed is logged at CONFIG level. In addition, a
custom seed (potentially the default seed from the previous test plan
execution) may be specified via the
configuration parameter which can be supplied via the Launcher
API, build tools (e.g., Gradle and Maven), a JVM system property, or the JUnit
Platform configuration file (i.e., a file named junit-platform.properties
in the root of the class path). Consult the User Guide for further information.
RANDOM_SEED_PROPERTY_NAME,
RandomClassOrderer.ClassName, ClassOrderer.DisplayName, ClassOrderer.OrderAnnotation, ClassOrderer.Random| Modifier and Type | Field and Description |
|---|---|
private static long |
DEFAULT_SEED
Default seed, which is generated during initialization of this class
via
System.nanoTime() for reproducibility of tests. |
private static Logger |
logger |
static java.lang.String |
RANDOM_SEED_PROPERTY_NAME
Property name used to set the random seed used by this
ClassOrderer: "junit.jupiter.execution.order.random.seed" |
DEFAULT_ORDER_PROPERTY_NAME| Constructor and Description |
|---|
Random() |
| Modifier and Type | Method and Description |
|---|---|
private java.util.Optional<java.lang.Long> |
getCustomSeed(ClassOrdererContext context) |
void |
orderClasses(ClassOrdererContext context)
Order the classes encapsulated in the supplied
ClassOrdererContext pseudo-randomly. |
private static final Logger logger
private static final long DEFAULT_SEED
System.nanoTime() for reproducibility of tests.public static final java.lang.String RANDOM_SEED_PROPERTY_NAME
ClassOrderer: "junit.jupiter.execution.order.random.seed"
The same property is used by MethodOrderer.Random for
consistency between the two random orderers.
Supported values include any string that can be converted to a
Long via Long.valueOf(String).
If not specified or if the specified value cannot be converted to
a Long, the default random seed will be used (see the
class-level Javadoc for details).
MethodOrderer.Random,
Constant Field Valuespublic void orderClasses(ClassOrdererContext context)
ClassOrdererContext pseudo-randomly.orderClasses in interface ClassOrderercontext - the ClassOrdererContext containing the
class descriptors to order; never nullprivate java.util.Optional<java.lang.Long> getCustomSeed(ClassOrdererContext context)