diff --git a/java/execution/impl/src/com/intellij/execution/testframework/AbstractJavaTestConfigurationProducer.java b/java/execution/impl/src/com/intellij/execution/testframework/AbstractJavaTestConfigurationProducer.java index e30be382476c..385ea88cabcc 100644 --- a/java/execution/impl/src/com/intellij/execution/testframework/AbstractJavaTestConfigurationProducer.java +++ b/java/execution/impl/src/com/intellij/execution/testframework/AbstractJavaTestConfigurationProducer.java @@ -127,6 +127,7 @@ public abstract class AbstractJavaTestConfigurationProducer collectingProcessor) { for (PsiElement psiElement : psiElements) { + psiElement = PsiTreeUtil.getParentOfType(psiElement, PsiMember.class, false); if (psiElement instanceof PsiClassOwner) { final PsiClass[] classes = ((PsiClassOwner)psiElement).getClasses(); for (PsiClass aClass : classes) { diff --git a/platform/testRunner/src/com/intellij/execution/testframework/TestsUIUtil.java b/platform/testRunner/src/com/intellij/execution/testframework/TestsUIUtil.java index 38de6a128322..0fecf9b9208e 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/TestsUIUtil.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/TestsUIUtil.java @@ -37,6 +37,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; +import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; import java.awt.*; import java.util.List; @@ -81,9 +82,15 @@ public class TestsUIUtil { final Component component = PlatformDataKeys.CONTEXT_COMPONENT.getData(dataContext); if (component instanceof JTree) { final TreePath[] selectionPaths = ((JTree)component).getSelectionPaths(); - if (selectionPaths == null || selectionPaths.length <= 1) { + if (selectionPaths == null || selectionPaths.length == 0) { return true; } + if (selectionPaths.length == 1) { + Object lastPathComponent = selectionPaths[0].getLastPathComponent(); + if (lastPathComponent instanceof TreeNode && ((TreeNode)lastPathComponent).isLeaf()) { + return true; + } + } } return false; }