multiple testng versions preferences (IDEA-69809)

This commit is contained in:
anna
2011-05-19 21:17:19 +04:00
parent 55f1784dd6
commit 37702b75f1
@@ -54,10 +54,13 @@ import com.intellij.openapi.util.Getter;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.ToolWindowId;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiFile;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.PathUtil;
import com.intellij.util.net.NetUtils;
@@ -67,11 +70,13 @@ import com.theoryinpractice.testng.ui.TestNGResults;
import com.theoryinpractice.testng.ui.actions.RerunFailedTestsAction;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.testng.CommandLineArgs;
import org.testng.IDEATestNGListener;
import org.testng.RemoteTestNGStarter;
import org.testng.annotations.AfterClass;
import org.testng.remote.RemoteArgs;
import org.testng.remote.RemoteTestNG;
import org.testng.remote.strprotocol.MessageHelper;
import org.testng.remote.strprotocol.SerializedMessageSender;
@@ -387,9 +392,17 @@ public class TestNGRunnableState extends JavaCommandLineState {
scopeToDetermineTestngIn = GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(config.getConfigurationModule().getModule());
}
final TestData data = config.getPersistantData();
final JavaPsiFacade facade = JavaPsiFacade.getInstance(project);
final PsiClass aClass = facade.findClass(SerializedMessageSender.class.getName(), scopeToDetermineTestngIn);
if (aClass == null) return false;
return JavaPsiFacade.getInstance(project)
.findClass(SerializedMessageSender.class.getName(), scopeToDetermineTestngIn) != null;
final PsiClass[] starters = facade.findClasses(RemoteTestNG.class.getName(), scopeToDetermineTestngIn);
for (PsiClass starter : starters) {
if (starter.findFieldByName("m_serPort", false) == null) {
LOG.info("Multiple TestNG versions found");
return false;
}
}
return true;
}
}