mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
prefer tests over main on test methods (DEA-121541)
This commit is contained in:
+8
-1
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.execution.application;
|
||||
|
||||
import com.intellij.codeInsight.TestFrameworks;
|
||||
import com.intellij.execution.JavaExecutionUtil;
|
||||
import com.intellij.execution.Location;
|
||||
import com.intellij.execution.actions.ConfigurationContext;
|
||||
@@ -82,8 +83,14 @@ public class ApplicationConfigurationProducer extends JavaRunConfigurationProduc
|
||||
|
||||
@Override
|
||||
public boolean isConfigurationFromContext(ApplicationConfiguration appConfiguration, ConfigurationContext context) {
|
||||
final PsiClass aClass = ApplicationConfigurationType.getMainClass(context.getPsiLocation());
|
||||
final PsiElement location = context.getPsiLocation();
|
||||
final PsiClass aClass = ApplicationConfigurationType.getMainClass(location);
|
||||
if (aClass != null && Comparing.equal(JavaExecutionUtil.getRuntimeQualifiedName(aClass), appConfiguration.MAIN_CLASS_NAME)) {
|
||||
final PsiMethod method = PsiTreeUtil.getParentOfType(location, PsiMethod.class, false);
|
||||
if (method != null && TestFrameworks.getInstance().isTestMethod(method)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Module configurationModule = appConfiguration.getConfigurationModule().getModule();
|
||||
if (Comparing.equal(context.getModule(), configurationModule)) return true;
|
||||
|
||||
|
||||
@@ -40,6 +40,8 @@ public abstract class TestFrameworks {
|
||||
public abstract PsiMethod findTearDownMethod(PsiClass psiClass);
|
||||
|
||||
protected abstract boolean hasConfigMethods(PsiClass psiClass);
|
||||
|
||||
public abstract boolean isTestMethod(PsiMethod method);
|
||||
|
||||
public boolean isTestOrConfig(PsiClass psiClass) {
|
||||
return isTestClass(psiClass) || hasConfigMethods(psiClass);
|
||||
|
||||
@@ -100,4 +100,13 @@ public class TestFrameworksImpl extends TestFrameworks {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTestMethod(PsiMethod method) {
|
||||
final TestFramework[] testFrameworks = Extensions.getExtensions(TestFramework.EXTENSION_NAME);
|
||||
for (TestFramework framework : testFrameworks) {
|
||||
if (framework.isTestMethod(method)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user