Annotating unit tests with more than one test-related annotation is not only useless but could also result in unexpected behavior like failing
tests or unwanted side-effects.
This rule reports an issue when a test method is annotated with more than one of the following competing annotation:
- @Test
- @RepeatedTest
- @ParameterizedTest
- @TestFactory
- @TestTemplate
Noncompliant code example
@Test
@RepeatedTest(2) // Noncompliant, this test will be repeated 3 times
void test() { }
@ParameterizedTest
@Test
@MethodSource("methodSource")
void test2(int argument) { } // Noncompliant, this test will fail with ParameterResolutionException
Compliant solution
@RepeatedTest(2)
void test() { }
@ParameterizedTest
@MethodSource("methodSource")
void test2(int argument) { }