mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
junit: do not reuse directory configuration from another test root (IDEA-116871)
This commit is contained in:
@@ -56,6 +56,7 @@ public abstract class JUnitConfigurationProducer extends JavaRunConfigurationPro
|
||||
} else {
|
||||
testPackage = null;
|
||||
}
|
||||
PsiDirectory testDir = element instanceof PsiDirectory ? (PsiDirectory)element : null;
|
||||
RunnerAndConfigurationSettings template = RunManager.getInstance(location.getProject())
|
||||
.getConfigurationTemplate(getConfigurationFactory());
|
||||
final Module predefinedModule =
|
||||
@@ -66,7 +67,7 @@ public abstract class JUnitConfigurationProducer extends JavaRunConfigurationPro
|
||||
if (vmParameters != null && !Comparing.strEqual(vmParameters, unitConfiguration.getVMParameters())) return false;
|
||||
final TestObject testobject = unitConfiguration.getTestObject();
|
||||
if (testobject != null) {
|
||||
if (testobject.isConfiguredByElement(unitConfiguration, testClass, testMethod, testPackage)) {
|
||||
if (testobject.isConfiguredByElement(unitConfiguration, testClass, testMethod, testPackage, testDir)) {
|
||||
final Module configurationModule = unitConfiguration.getConfigurationModule().getModule();
|
||||
if (Comparing.equal(location.getModule(), configurationModule)) return true;
|
||||
if (Comparing.equal(predefinedModule, configurationModule)) {
|
||||
|
||||
@@ -26,10 +26,7 @@ import com.intellij.execution.configurations.RuntimeConfigurationWarning;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
|
||||
class TestClass extends TestObject {
|
||||
@@ -62,7 +59,8 @@ class TestClass extends TestObject {
|
||||
public boolean isConfiguredByElement(final JUnitConfiguration configuration,
|
||||
PsiClass testClass,
|
||||
PsiMethod testMethod,
|
||||
PsiPackage testPackage) {
|
||||
PsiPackage testPackage,
|
||||
PsiDirectory testDir) {
|
||||
|
||||
if (testClass == null) {
|
||||
return false;
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.intellij.execution.util.JavaParametersUtil;
|
||||
import com.intellij.execution.util.ProgramParametersUtil;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -120,14 +121,12 @@ class TestDirectory extends TestPackage {
|
||||
public boolean isConfiguredByElement(JUnitConfiguration configuration,
|
||||
PsiClass testClass,
|
||||
PsiMethod testMethod,
|
||||
PsiPackage testPackage) {
|
||||
if (JUnitConfiguration.TEST_DIRECTORY.equals(configuration.getPersistentData().TEST_OBJECT) && testPackage != null) {
|
||||
final PsiDirectory[] directories = testPackage.getDirectories(configuration.getConfigurationModule().getSearchScope());
|
||||
final String dirName = configuration.getPersistentData().getDirName();
|
||||
if (dirName != null) {
|
||||
for (PsiDirectory directory : directories) {
|
||||
if (dirName.equals(directory.getVirtualFile().getPath())) return true;
|
||||
}
|
||||
PsiPackage testPackage,
|
||||
PsiDirectory testDir) {
|
||||
if (JUnitConfiguration.TEST_DIRECTORY.equals(configuration.getPersistentData().TEST_OBJECT) && testDir != null) {
|
||||
if (Comparing.strEqual(FileUtil.toSystemIndependentName(configuration.getPersistentData().getDirName()),
|
||||
testDir.getVirtualFile().getPath())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -22,10 +22,7 @@ import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementAdapter;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
@@ -105,7 +102,8 @@ class TestMethod extends TestObject {
|
||||
public boolean isConfiguredByElement(final JUnitConfiguration configuration,
|
||||
PsiClass testClass,
|
||||
PsiMethod testMethod,
|
||||
PsiPackage testPackage) {
|
||||
PsiPackage testPackage,
|
||||
PsiDirectory testDir) {
|
||||
if (testMethod == null) return false;
|
||||
if (testClass == null) return false;
|
||||
final JUnitConfiguration.Data data = configuration.getPersistentData();
|
||||
|
||||
@@ -62,10 +62,7 @@ import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import com.intellij.rt.execution.junit.IDEAJUnitListener;
|
||||
import com.intellij.rt.execution.junit.JUnitStarter;
|
||||
@@ -138,7 +135,8 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
public abstract boolean isConfiguredByElement(JUnitConfiguration configuration,
|
||||
PsiClass testClass,
|
||||
PsiMethod testMethod,
|
||||
PsiPackage testPackage);
|
||||
PsiPackage testPackage,
|
||||
PsiDirectory testDir);
|
||||
|
||||
protected void configureModule(final JavaParameters parameters, final RunConfigurationModule configurationModule, final String mainClassName)
|
||||
throws CantRunException {
|
||||
@@ -162,7 +160,8 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
public boolean isConfiguredByElement(final JUnitConfiguration configuration,
|
||||
PsiClass testClass,
|
||||
PsiMethod testMethod,
|
||||
PsiPackage testPackage) {
|
||||
PsiPackage testPackage,
|
||||
PsiDirectory testDir) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -246,7 +246,8 @@ public class TestPackage extends TestObject {
|
||||
public boolean isConfiguredByElement(final JUnitConfiguration configuration,
|
||||
PsiClass testClass,
|
||||
PsiMethod testMethod,
|
||||
PsiPackage testPackage) {
|
||||
PsiPackage testPackage,
|
||||
PsiDirectory testDir) {
|
||||
return testPackage != null
|
||||
&& Comparing.equal(testPackage.getQualifiedName(), configuration.getPersistentData().getPackageName());
|
||||
}
|
||||
|
||||
@@ -34,10 +34,7 @@ import com.intellij.openapi.progress.Task;
|
||||
import com.intellij.openapi.progress.impl.BackgroundableProcessIndicator;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListenerComposite;
|
||||
@@ -194,7 +191,8 @@ public class TestsPattern extends TestPackage {
|
||||
public boolean isConfiguredByElement(JUnitConfiguration configuration,
|
||||
PsiClass testClass,
|
||||
PsiMethod testMethod,
|
||||
PsiPackage testPackage) {
|
||||
PsiPackage testPackage,
|
||||
PsiDirectory testDir) {
|
||||
/*if (testMethod != null && Comparing.strEqual(testMethod.getName(), configuration.getPersistentData().METHOD_NAME)) {
|
||||
return true;
|
||||
}*/
|
||||
|
||||
Reference in New Issue
Block a user