From df94f17a9edf8dcb6124819f1e75aa64ec7b3a79 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 3 Nov 2015 17:59:35 +0100 Subject: [PATCH] junit: support for inheritors of abstract parameterized tests (IDEA-146578) --- .../intellij/junit4/JUnit4TestRunnerUtil.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestRunnerUtil.java b/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestRunnerUtil.java index a2b0387c8440..b8e8bd9d87ae 100644 --- a/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestRunnerUtil.java +++ b/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestRunnerUtil.java @@ -108,8 +108,22 @@ public class JUnit4TestRunnerUtil { if (methods.contains(methodName)) { return true; } - return name != null && methodName.endsWith(name) && - methods.contains(methodName.substring(0, methodName.length() - name.length())); + if (name != null) { + return methodName.endsWith(name) && + methods.contains(methodName.substring(0, methodName.length() - name.length())); + } + + final Class testClass = description.getTestClass(); + if (testClass != null) { + final RunWith classAnnotation = (RunWith)testClass.getAnnotation(RunWith.class); + if (classAnnotation != null && Parameterized.class.isAssignableFrom(classAnnotation.value())) { + final int idx = methodName.indexOf("["); + if (idx > -1) { + return methods.contains(methodName.substring(0, idx)); + } + } + } + return false; } return true; }