@Target({ANNOTATION_TYPE,METHOD}) @Retention(RUNTIME) @Documented @API(status=STABLE, since="5.0") @TestTemplate public @interface RepeatedTest
@RepeatedTest
is used to signal that the annotated method is a
test template method that should be repeated a specified number of times with a configurable display
name.
Each invocation of the repeated test behaves like the execution of a
regular @Test
method with full support for the same lifecycle
callbacks and extensions. In addition, the current repetition and total
number of repetitions can be accessed by having the RepetitionInfo
injected.
@RepeatedTest
methods must not be private
or static
and must return void
.
@RepeatedTest
methods may optionally declare parameters to be
resolved by ParameterResolvers
.
@RepeatedTest
may also be used as a meta-annotation in order to
create a custom composed annotation that inherits the semantics
of @RepeatedTest
.
DisplayName
,
RepetitionInfo
,
TestTemplate
,
TestInfo
,
Test
Modifier and Type | Fields | Description |
---|---|---|
static java.lang.String |
CURRENT_REPETITION_PLACEHOLDER |
Placeholder for the current repetition count of a
@RepeatedTest
method: {currentRepetition} |
static java.lang.String |
DISPLAY_NAME_PLACEHOLDER |
|
static java.lang.String |
LONG_DISPLAY_NAME |
Long display name pattern for a repeated test: "{displayName} :: repetition {currentRepetition} of {totalRepetitions}"
|
static java.lang.String |
SHORT_DISPLAY_NAME |
Short display name pattern for a repeated test: "repetition {currentRepetition} of {totalRepetitions}"
|
static java.lang.String |
TOTAL_REPETITIONS_PLACEHOLDER |
Placeholder for the total number of repetitions of a
@RepeatedTest
method: {totalRepetitions} |
Modifier and Type | Required Element | Description |
---|---|---|
int |
value |
The number of repetitions.
|
Modifier and Type | Optional Element | Description |
---|---|---|
java.lang.String |
name |
The display name for each repetition of the repeated test.
|
static final java.lang.String CURRENT_REPETITION_PLACEHOLDER
@RepeatedTest
method: {currentRepetition}
static final java.lang.String TOTAL_REPETITIONS_PLACEHOLDER
@RepeatedTest
method: {totalRepetitions}
static final java.lang.String SHORT_DISPLAY_NAME
static final java.lang.String LONG_DISPLAY_NAME
DISPLAY_NAME_PLACEHOLDER
,
SHORT_DISPLAY_NAME
int value
java.lang.String name
Defaults to SHORT_DISPLAY_NAME
, resulting in
names such as "repetition 1 of 2"
, "repetition 2 of 2"
,
etc.
Can be set to
, resulting in
names such as LONG_DISPLAY_NAME
"myRepeatedTest() :: repetition 1 of 2"
,
"myRepeatedTest() :: repetition 2 of 2"
, etc.
Alternatively, you can provide a custom display name, optionally using the aforementioned placeholders.
SHORT_DISPLAY_NAME
,
LONG_DISPLAY_NAME
,
DISPLAY_NAME_PLACEHOLDER
,
CURRENT_REPETITION_PLACEHOLDER
,
TOTAL_REPETITIONS_PLACEHOLDER
,
TestInfo.getDisplayName()