mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
testng: override default toString for native injections (IDEA-172974)
This commit is contained in:
+38
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.junit.Test;
|
||||
import org.testng.IDEATestNGRemoteListener;
|
||||
import org.testng.ISuite;
|
||||
import org.testng.internal.TestResult;
|
||||
import org.testng.xml.XmlClass;
|
||||
import org.testng.xml.XmlInclude;
|
||||
import org.testng.xml.XmlSuite;
|
||||
@@ -276,6 +277,36 @@ public class TestNGTreeHierarchyTest {
|
||||
"##teamcity[testFinished name='ATest.setUp']\n" +
|
||||
"##teamcity[testSuiteFinished name='a.ATest']\n", StringUtil.convertLineSeparators(buf.toString()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAfterMethodWithInjectedTestResult() throws Exception {
|
||||
final StringBuffer buf = new StringBuffer();
|
||||
final IDEATestNGRemoteListener listener = createListener(buf);
|
||||
final String className = "a.ATest";
|
||||
listener.onSuiteStart(className, true);
|
||||
|
||||
final MockTestNGResult result = new MockTestNGResult("ATest", "testMe", null, new Object[]{null, null});
|
||||
listener.onTestStart(result);
|
||||
listener.onTestFinished(result);
|
||||
|
||||
final MockTestNGResult tearDown = new MockTestNGResult(className, "tearDown", null, new Object[] {new MyTestTestResult()});
|
||||
listener.onConfigurationStart(tearDown);
|
||||
listener.onConfigurationSuccess(tearDown);
|
||||
listener.onSuiteFinish(className);
|
||||
|
||||
Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://a.ATest']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testStarted name='ATest.testMe|[null, null|]' locationHint='java:test://ATest.testMe|[0|]']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testFinished name='ATest.testMe|[null, null|]']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testStarted name='ATest.tearDown|[testName|]' locationHint='java:test://a.ATest.tearDown|[0|]' config='true']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testFinished name='ATest.tearDown|[testName|]']\n" +
|
||||
"##teamcity[testSuiteFinished name='a.ATest']\n", StringUtil.convertLineSeparators(buf.toString()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNullParameters() throws Exception {
|
||||
@@ -462,4 +493,11 @@ public class TestNGTreeHierarchyTest {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public static class MyTestTestResult extends TestResult {
|
||||
@Override
|
||||
public String getName() {
|
||||
return "testName";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ public class IDEATestNGRemoteListener {
|
||||
invocationCount = 0;
|
||||
}
|
||||
Integer normalizedIndex = normalizeInvocationCountInsideIncludedMethods(invocationCount, result);
|
||||
final String paramString = getParamsString(parameters, normalizedIndex);
|
||||
final String paramString = getParamsString(parameters, config, normalizedIndex);
|
||||
onTestStart(result, paramString, normalizedIndex, config);
|
||||
myInvocationCounts.put(qualifiedName, invocationCount + 1);
|
||||
}
|
||||
@@ -265,10 +265,27 @@ public class IDEATestNGRemoteListener {
|
||||
return methodName;
|
||||
}
|
||||
|
||||
private static String getParamsString(Object[] parameters, int invocationCount) {
|
||||
private static String getParamsString(Object[] parameters, boolean config, int invocationCount) {
|
||||
String paramString = "";
|
||||
if (parameters.length > 0) {
|
||||
paramString = Arrays.deepToString(parameters);
|
||||
if (config) {
|
||||
Object parameter = parameters[0];
|
||||
Class<?> parameterClass = parameter.getClass();
|
||||
if (ITestResult.class.isAssignableFrom(parameterClass) || ITestContext.class.isAssignableFrom(parameterClass)) {
|
||||
try {
|
||||
paramString = "[" + parameterClass.getMethod("getName").invoke(parameter) + "]";
|
||||
}
|
||||
catch (Throwable e) {
|
||||
paramString = "";
|
||||
}
|
||||
}
|
||||
else {
|
||||
paramString = parameter.toString();
|
||||
}
|
||||
}
|
||||
else {
|
||||
paramString = Arrays.deepToString(parameters);
|
||||
}
|
||||
}
|
||||
if (invocationCount > 0) {
|
||||
paramString += " (" + invocationCount + ")";
|
||||
|
||||
Reference in New Issue
Block a user