mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-21 14:01:44 +07:00
junit 5: support pattern configurations (IDEA-164088)
This commit is contained in:
@@ -238,7 +238,9 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState<JUnitCon
|
||||
return getConfiguration().getForkMode();
|
||||
}
|
||||
|
||||
protected <T> void addClassesListToJavaParameters(Collection<? extends T> elements, Function<T, String> nameFunction, String packageName,
|
||||
protected <T> void addClassesListToJavaParameters(Collection<? extends T> elements,
|
||||
Function<T, String> nameFunction,
|
||||
String packageName,
|
||||
boolean createTempFile, JavaParameters javaParameters) throws CantRunException {
|
||||
try {
|
||||
if (createTempFile) {
|
||||
@@ -284,7 +286,8 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState<JUnitCon
|
||||
}
|
||||
|
||||
final String category = JUnitConfiguration.TEST_CATEGORY.equals(data.TEST_OBJECT) ? data.getCategory() : "";
|
||||
JUnitStarter.printClassesList(testNames, packageName, category, myTempFile);
|
||||
final String filters = JUnitConfiguration.TEST_PATTERN.equals(data.TEST_OBJECT) ? data.getPatternPresentation() : "";
|
||||
JUnitStarter.printClassesList(testNames, packageName, category, filters, myTempFile);
|
||||
|
||||
writeClassesPerModule(packageName, javaParameters, perModule);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,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.DiscoverySelectors;
|
||||
import org.junit.platform.launcher.LauncherDiscoveryRequest;
|
||||
import org.junit.platform.launcher.TagFilter;
|
||||
@@ -28,10 +29,6 @@ import java.io.IOException;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Handler;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.LogManager;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class JUnit5TestRunnerUtil {
|
||||
|
||||
@@ -54,6 +51,7 @@ public class JUnit5TestRunnerUtil {
|
||||
if (packageName == null) return null;
|
||||
|
||||
String tagName = reader.readLine();
|
||||
String filters = reader.readLine();
|
||||
String line;
|
||||
|
||||
List<DiscoverySelector> selectors = new ArrayList<>();
|
||||
@@ -61,8 +59,15 @@ public class JUnit5TestRunnerUtil {
|
||||
selectors.add(createSelector(line));
|
||||
}
|
||||
packageNameRef[0] = packageName.length() == 0 ? "<default package>" : packageName;
|
||||
builder = selectors.isEmpty() ? builder.selectors(DiscoverySelectors.selectPackage(packageName))
|
||||
: builder.selectors(selectors);
|
||||
if (selectors.isEmpty()) {
|
||||
builder = builder.selectors(DiscoverySelectors.selectPackage(packageName));
|
||||
if (filters != null && !filters.isEmpty()) {
|
||||
builder = builder.filters(ClassNameFilter.includeClassNamePatterns(filters.split("\\|\\|")));
|
||||
}
|
||||
}
|
||||
else {
|
||||
builder = builder.selectors(selectors);
|
||||
}
|
||||
if (tagName != null && !tagName.isEmpty()) {
|
||||
builder = builder.filters(TagFilter.includeTags(tagName));
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ public class TestRunnerUtil {
|
||||
suiteName = reader.readLine();
|
||||
|
||||
reader.readLine(); //category
|
||||
reader.readLine();//filters
|
||||
|
||||
vector = new Vector();
|
||||
String line;
|
||||
|
||||
@@ -58,6 +58,8 @@ public class JUnit4TestRunnerUtil {
|
||||
|
||||
final String categoryName = reader.readLine();
|
||||
final Class category = categoryName != null && categoryName.length() > 0 ? loadTestClass(categoryName) : null;
|
||||
final String filters = reader.readLine();
|
||||
|
||||
String line;
|
||||
|
||||
while ((line = reader.readLine()) != null) {
|
||||
|
||||
@@ -19,7 +19,6 @@ import com.intellij.rt.execution.testFrameworks.ForkedSplitter;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -63,7 +62,7 @@ public class JUnitForkedSplitter extends ForkedSplitter {
|
||||
Object rootDescription) throws IOException {
|
||||
File tempFile = File.createTempFile("idea_junit", ".tmp");
|
||||
tempFile.deleteOnExit();
|
||||
JUnitStarter.printClassesList(classNames, packageName + ", working directory: \'" + workingDir + "\'", "", tempFile);
|
||||
JUnitStarter.printClassesList(classNames, packageName + ", working directory: \'" + workingDir + "\'", "", "", tempFile);
|
||||
final List childArgs = new ArrayList();
|
||||
childArgs.add("@" + tempFile.getAbsolutePath());
|
||||
childArgs.addAll(myNewArgs);
|
||||
|
||||
@@ -252,12 +252,13 @@ public class JUnitStarter {
|
||||
return Class.forName(agentName);
|
||||
}
|
||||
|
||||
public static void printClassesList(List classNames, String packageName, String category, File tempFile) throws IOException {
|
||||
public static void printClassesList(List classNames, String packageName, String category, String filters, File tempFile) throws IOException {
|
||||
final PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(tempFile), "UTF-8"));
|
||||
|
||||
try {
|
||||
writer.println(packageName); //package name
|
||||
writer.println(category); //category
|
||||
writer.println(filters); //patterns
|
||||
for (int i = 0; i < classNames.size(); i++) {
|
||||
writer.println(classNames.get(i));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user