diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitCommonClassNames.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitCommonClassNames.java
index 6b85cc3c5c93..87b44a59ffcf 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitCommonClassNames.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitCommonClassNames.java
@@ -35,4 +35,5 @@ public class JUnitCommonClassNames {
public static final String ORG_JUNIT_JUPITER_PARAMS_PROVIDER_CSV_FILE_SOURCE = "org.junit.jupiter.params.provider.CsvFileSource";
public static final String ORG_JUNIT_JUPITER_PARAMS_PROVIDER_ARGUMENTS_SOURCE = "org.junit.jupiter.params.provider.ArgumentsSource";
public static final String ORG_JUNIT_JUPITER_PARAMS_CONVERTER_CONVERT_WITH = "org.junit.jupiter.params.converter.ConvertWith";
+ public static final String ORG_JUNIT_JUPITER_API_TEST = "org.junit.jupiter.api.Test";
}
diff --git a/plugins/junit/src/com/intellij/execution/junit/codeInsight/JUnit5MalformedParameterizedInspection.kt b/plugins/junit/src/com/intellij/execution/junit/codeInsight/JUnit5MalformedParameterizedInspection.kt
index 81d447c2da51..14c35d1c3ca3 100644
--- a/plugins/junit/src/com/intellij/execution/junit/codeInsight/JUnit5MalformedParameterizedInspection.kt
+++ b/plugins/junit/src/com/intellij/execution/junit/codeInsight/JUnit5MalformedParameterizedInspection.kt
@@ -17,6 +17,7 @@ package com.intellij.execution.junit.codeInsight
import com.intellij.codeInsight.AnnotationUtil
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil
+import com.intellij.codeInsight.daemon.impl.quickfix.DeleteElementFix
import com.intellij.codeInsight.intention.QuickFixFactory
import com.intellij.codeInspection.BaseJavaBatchLocalInspectionTool
import com.intellij.codeInspection.ProblemHighlightType
@@ -53,6 +54,12 @@ class JUnit5MalformedParameterizedInspection : BaseJavaBatchLocalInspectionTool(
val modifierList = method.modifierList
val parameterizedAnnotation = modifierList.findAnnotation(JUnitCommonClassNames.ORG_JUNIT_JUPITER_PARAMS_PARAMETERIZED_TEST)
if (parameterizedAnnotation != null) {
+ val testAnnotation = modifierList.findAnnotation(JUnitCommonClassNames.ORG_JUNIT_JUPITER_API_TEST)
+ if (testAnnotation != null && method.parameterList.parametersCount > 0) {
+ holder.registerProblem(testAnnotation,
+ "Suspicious combination @Test and @ParameterizedTest",
+ DeleteElementFix(testAnnotation))
+ }
val methodSource = modifierList.findAnnotation(JUnitCommonClassNames.ORG_JUNIT_JUPITER_PARAMS_PROVIDER_METHOD_SOURCE)
if (methodSource != null) {
checkMethodSource(method, methodSource)
diff --git a/plugins/junit/test/com/intellij/execution/junit/codeInsight/JUnit5MalformedParameterizedTest.java b/plugins/junit/test/com/intellij/execution/junit/codeInsight/JUnit5MalformedParameterizedTest.java
index 6fca440e8068..2dca6b1b3142 100644
--- a/plugins/junit/test/com/intellij/execution/junit/codeInsight/JUnit5MalformedParameterizedTest.java
+++ b/plugins/junit/test/com/intellij/execution/junit/codeInsight/JUnit5MalformedParameterizedTest.java
@@ -33,6 +33,8 @@ public class JUnit5MalformedParameterizedTest extends LightInspectionTestCase {
super.setUp();
addEnvironmentClass("package org.junit.jupiter.params;\n" +
"public @interface ParameterizedTest {}");
+ addEnvironmentClass("package org.junit.jupiter.api;\n" +
+ "public @interface Test {}");
addEnvironmentClass("package org.junit.jupiter.params.provider;\n" +
"public @interface MethodSource {String[] names();}");
addEnvironmentClass("package org.junit.jupiter.params.provider;\n" +
diff --git a/plugins/junit/testData/codeInsight/malformedParameterized/MalformedSources.java b/plugins/junit/testData/codeInsight/malformedParameterized/MalformedSources.java
index 5204dd60568c..c10df71d92a6 100644
--- a/plugins/junit/testData/codeInsight/malformedParameterized/MalformedSources.java
+++ b/plugins/junit/testData/codeInsight/malformedParameterized/MalformedSources.java
@@ -63,4 +63,9 @@ class ParameterizedTestsDemo {
@ValueSource(ints = 1)
void testWithValuesMultipleParams(int i, int j) { }
+ @ParameterizedTest
+ @ValueSource(ints = {1})
+ @org.junit.jupiter.api.Test
+ void testWithTestAnnotation(int i) { }
+
}