Annotation Type RepeatedTest


  • @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.

    Test Execution Order

    By default, test methods will be ordered using an algorithm that is deterministic but intentionally nonobvious. This ensures that subsequent runs of a test suite execute test methods in the same order, thereby allowing for repeatable builds. In this context, a test method is any instance method that is directly annotated or meta-annotated with @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, or @TestTemplate.

    Although true unit tests typically should not rely on the order in which they are executed, there are times when it is necessary to enforce a specific test method execution order — for example, when writing integration tests or functional tests where the sequence of the tests is important, especially in conjunction with @TestInstance(Lifecycle.PER_CLASS).

    To control the order in which test methods are executed, annotate your test class or test interface with @TestMethodOrder and specify the desired MethodOrderer implementation.

    Since:
    5.0
    See Also:
    DisplayName, RepetitionInfo, TestTemplate, TestInfo, Test
    • Field Summary

      Fields 
      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
      Placeholder for the display name of a @RepeatedTest method: {displayName}
      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}
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      int value
      The number of repetitions.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.String name
      The display name for each repetition of the repeated test.
    • Field Detail

      • DISPLAY_NAME_PLACEHOLDER

        static final java.lang.String DISPLAY_NAME_PLACEHOLDER
        Placeholder for the display name of a @RepeatedTest method: {displayName}
      • CURRENT_REPETITION_PLACEHOLDER

        static final java.lang.String CURRENT_REPETITION_PLACEHOLDER
        Placeholder for the current repetition count of a @RepeatedTest method: {currentRepetition}
      • TOTAL_REPETITIONS_PLACEHOLDER

        static final java.lang.String TOTAL_REPETITIONS_PLACEHOLDER
        Placeholder for the total number of repetitions of a @RepeatedTest method: {totalRepetitions}
      • LONG_DISPLAY_NAME

        static final java.lang.String LONG_DISPLAY_NAME
        Long display name pattern for a repeated test: "{displayName} :: repetition {currentRepetition} of {totalRepetitions}"
        See Also:
        DISPLAY_NAME_PLACEHOLDER, SHORT_DISPLAY_NAME
    • Element Detail

      • value

        int value
        The number of repetitions.
        Returns:
        the number of repetitions; must be greater than zero