diff --git a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java index 9c629ddf8fc6..776ed4761275 100644 --- a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java +++ b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java @@ -18,6 +18,7 @@ package com.intellij.junit5; import org.junit.platform.commons.util.AnnotationUtils; import org.junit.platform.engine.DiscoverySelector; import org.junit.platform.engine.discovery.ClassNameFilter; +import org.junit.platform.engine.discovery.ClasspathRootSelector; import org.junit.platform.engine.discovery.DiscoverySelectors; import org.junit.platform.launcher.LauncherDiscoveryRequest; import org.junit.platform.launcher.TagFilter; @@ -79,7 +80,10 @@ public class JUnit5TestRunnerUtil { List selectors = new ArrayList<>(); while ((line = reader.readLine()) != null) { - selectors.add(createSelector(line)); + DiscoverySelector selector = createSelector(line); + if (selector != null) { + selectors.add(selector); + } } packageNameRef[0] = packageName.length() == 0 ? "" : packageName; if (selectors.isEmpty()) { @@ -112,7 +116,9 @@ public class JUnit5TestRunnerUtil { builder = builder.configurationParameter("junit.jupiter.conditions.deactivate", disableDisabledCondition); } - return builder.selectors(createSelector(suiteClassNames[0])).build(); + DiscoverySelector selector = createSelector(suiteClassNames[0]); + assert selector != null : "selector by class name is never null"; + return builder.selectors(selector).build(); } return null; @@ -199,7 +205,12 @@ public class JUnit5TestRunnerUtil { } else if (line.startsWith("\u002B")) { String directory = line.substring("\u002B".length()); - return DiscoverySelectors.selectClasspathRoots(Collections.singleton(Paths.get(directory))).iterator().next(); + List selectors = DiscoverySelectors.selectClasspathRoots(Collections.singleton(Paths.get(directory))); + if (selectors.isEmpty()) { + return null; + } else { + return selectors.iterator().next(); + } } else if (line.contains(",")) { return DiscoverySelectors.selectMethod(line.replaceFirst(",", "#"));