Run single test after Gradle 4.7 update
This commit is contained in:
+20
-3
@@ -18,6 +18,7 @@ import org.junit.runner.notification.RunNotifier;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static org.jetbrains.kotlin.test.JUnit3RunnerWithInners.isTestMethod;
|
import static org.jetbrains.kotlin.test.JUnit3RunnerWithInners.isTestMethod;
|
||||||
@@ -117,14 +118,30 @@ class JUnit3RunnerWithInnersForGradle extends Runner implements Filterable, Sort
|
|||||||
}
|
}
|
||||||
|
|
||||||
includePatternsField.setAccessible(true);
|
includePatternsField.setAccessible(true);
|
||||||
@SuppressWarnings("unchecked") ArrayList<Pattern> includePatterns =
|
@SuppressWarnings("unchecked") List<Object> includePatterns =
|
||||||
(ArrayList<Pattern>) includePatternsField.get(testSelectionMatcher);
|
(ArrayList<Object>) includePatternsField.get(testSelectionMatcher);
|
||||||
|
|
||||||
if (includePatterns.size() != 1) {
|
if (includePatterns.size() != 1) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Pattern pattern = includePatterns.get(0);
|
Object patternStorage = includePatterns.get(0);
|
||||||
|
|
||||||
|
Pattern pattern;
|
||||||
|
if (patternStorage instanceof Pattern) {
|
||||||
|
pattern = (Pattern) patternStorage;
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
// TestSelectionMatcher.TestPattern is used since Gradle 4.7
|
||||||
|
Field patternField = patternStorage.getClass().getDeclaredField("pattern");
|
||||||
|
patternField.setAccessible(true);
|
||||||
|
pattern = (Pattern) patternField.get(patternStorage);
|
||||||
|
}
|
||||||
|
catch (NoSuchFieldException exception) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String patternStr = pattern.pattern();
|
String patternStr = pattern.pattern();
|
||||||
|
|
||||||
if (patternStr.endsWith("*")) {
|
if (patternStr.endsWith("*")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user