mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java locator: provide navigation for java test framework console
This commit is contained in:
@@ -96,7 +96,7 @@ public abstract class JavaTestFrameworkRunnableState<T extends ModuleBasedConfig
|
||||
testConsoleProperties.setIfUndefined(TestConsoleProperties.HIDE_PASSED_TESTS, false);
|
||||
|
||||
final BaseTestsOutputConsoleView consoleView =
|
||||
SMTestRunnerConnectionUtil.createConsoleWithCustomLocator(getFrameworkName(), testConsoleProperties, getEnvironment(), null);
|
||||
SMTestRunnerConnectionUtil.createConsoleWithCustomLocator(getFrameworkName(), testConsoleProperties, getEnvironment(), new JavaTestLocationProvider(testConsoleProperties.getScope()));
|
||||
final SMTestRunnerResultsForm viewer = ((SMTRunnerConsoleView)consoleView).getResultsViewer();
|
||||
Disposer.register(getConfiguration().getProject(), consoleView);
|
||||
|
||||
|
||||
+4
-4
@@ -18,6 +18,7 @@ package com.intellij.execution.testframework;
|
||||
import com.intellij.execution.Location;
|
||||
import com.intellij.execution.PsiLocation;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
@@ -54,13 +55,12 @@ public class JavaTestLocationProvider implements TestLocationProvider {
|
||||
}
|
||||
}
|
||||
else if (TEST_PROTOCOL.equals(protocolId)) {
|
||||
int p = locationData.lastIndexOf('.');
|
||||
if (p > 0 && p < locationData.length() - 1) {
|
||||
String className = locationData.substring(0, p);
|
||||
final String className = StringUtil.getPackageName(locationData);
|
||||
if (!StringUtil.isEmpty(className)) {
|
||||
final String methodName = StringUtil.getShortName(locationData);
|
||||
PsiClass[] classes = JavaPsiFacade.getInstance(project).findClasses(className, myScope);
|
||||
if (classes.length > 0) {
|
||||
results = ContainerUtil.newSmartList();
|
||||
String methodName = locationData.substring(p + 1);
|
||||
for (PsiClass aClass : classes) {
|
||||
PsiMethod[] methods = aClass.findMethodsByName(methodName, true);
|
||||
for (PsiMethod method : methods) {
|
||||
|
||||
@@ -173,8 +173,9 @@ class SMTestSender extends RunListener {
|
||||
|
||||
private static void sendTree(JUnit4IdeaTestRunner runner, Object description, List tests) {
|
||||
if (tests.isEmpty()) {
|
||||
System.out.println("##teamcity[suiteTreeNode name=\'" + JUnit4ReflectionUtil.getMethodName((Description)description)
|
||||
+ "\' locationHint=\'" + JUnit4ReflectionUtil.getClassName((Description)description) + "\']");
|
||||
final String methodName = JUnit4ReflectionUtil.getMethodName((Description)description);
|
||||
System.out.println("##teamcity[suiteTreeNode name=\'" + methodName +
|
||||
"\' locationHint=\'java:test://" + JUnit4ReflectionUtil.getClassName((Description)description) + "." + methodName + "\']");
|
||||
}
|
||||
boolean pass = false;
|
||||
for (Iterator iterator = tests.iterator(); iterator.hasNext(); ) {
|
||||
@@ -182,7 +183,8 @@ class SMTestSender extends RunListener {
|
||||
final List childTests = runner.getChildTests(next);
|
||||
if (childTests.isEmpty() && !pass) {
|
||||
pass = true;
|
||||
System.out.println("##teamcity[suiteTreeStarted name=\'" + JUnit4ReflectionUtil.getClassName((Description)description) + "\']");
|
||||
System.out.println("##teamcity[suiteTreeStarted name=\'" + JUnit4ReflectionUtil.getClassName((Description)description) +
|
||||
"\' locationHint=\'java:suite://" + JUnit4ReflectionUtil.getClassName((Description)description) + "\']");
|
||||
}
|
||||
sendTree(runner, next, childTests);
|
||||
}
|
||||
|
||||
@@ -18,8 +18,6 @@ package org.testng;
|
||||
|
||||
import jetbrains.buildServer.messages.serviceMessages.ServiceMessage;
|
||||
import org.testng.collections.Lists;
|
||||
import org.testng.remote.strprotocol.GenericMessage;
|
||||
import org.testng.remote.strprotocol.MessageHelper;
|
||||
import org.testng.xml.XmlClass;
|
||||
import org.testng.xml.XmlInclude;
|
||||
import org.testng.xml.XmlSuite;
|
||||
@@ -48,11 +46,11 @@ public class IDEARemoteTestNG extends TestNG {
|
||||
int testCount= 0;
|
||||
|
||||
for (XmlSuite suite : suites) {
|
||||
System.out.println("##teamcity[suiteTreeStarted name=\'" + suite.getName() + "\']");
|
||||
System.out.println("##teamcity[suiteTreeStarted name=\'" + suite.getName() + "\' locationHint=\'java:suite://" + suite.getName() + "\']");
|
||||
final List<XmlTest> tests = suite.getTests();
|
||||
for (XmlTest test : tests) {
|
||||
for (XmlClass aClass : test.getXmlClasses()) {
|
||||
System.out.println("##teamcity[suiteTreeStarted name=\'" + aClass.getName() + "\']");
|
||||
System.out.println("##teamcity[suiteTreeStarted name=\'" + aClass.getName() + "\' locationHint=\'java:suite://" + aClass.getName() + "\']");
|
||||
for (XmlInclude include : aClass.getIncludedMethods()) {
|
||||
System.out.println("##teamcity[suiteTreeNode name=\'" + include.getName() + "\']");
|
||||
}
|
||||
|
||||
@@ -46,7 +46,9 @@ public class IDEATestNGRemoteListener implements ISuiteListener, IResultListener
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + className + "\']");
|
||||
myCurrentClassName = className;
|
||||
}
|
||||
System.out.println("##teamcity[testStarted name=\'" + result.getMethod().getMethodName() + "\']");
|
||||
final String methodName = result.getMethod().getMethodName();
|
||||
System.out.println("##teamcity[testStarted name=\'" +
|
||||
methodName + "\' locationHint=\'java:test://" + className + "." + methodName + "\']");
|
||||
}
|
||||
|
||||
public void onTestSuccess(ITestResult result) {
|
||||
|
||||
Reference in New Issue
Block a user