testng sm runner: include param names in tree view presentation

This commit is contained in:
Anna Kozlova
2015-04-14 19:10:13 +02:00
parent f756f4456d
commit 6c780e752f
2 changed files with 14 additions and 9 deletions
@@ -19,7 +19,6 @@ package org.testng;
import jetbrains.buildServer.messages.serviceMessages.ServiceMessage;
import org.testng.collections.Lists;
import org.testng.xml.XmlClass;
import org.testng.xml.XmlInclude;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
@@ -51,9 +50,6 @@ public class IDEARemoteTestNG extends TestNG {
for (XmlTest test : tests) {
for (XmlClass aClass : test.getXmlClasses()) {
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() + "\']");
}
System.out.println("##teamcity[suiteTreeEnded name=\'" + aClass.getName() + "\']");
}
testCount += test.getClasses().size();
@@ -47,13 +47,22 @@ public class IDEATestNGRemoteListener implements ISuiteListener, IResultListener
System.out.println("##teamcity[testSuiteStarted name =\'" + className + "\']");
myCurrentClassName = className;
}
final String methodName = result.getMethod().getMethodName();
String methodName = getMethodName(result);
System.out.println("##teamcity[testStarted name=\'" +
methodName + "\' locationHint=\'java:test://" + className + "." + methodName + "\']");
}
private static String getMethodName(ITestResult result) {
String methodName = result.getMethod().getMethodName();
final Object[] parameters = result.getParameters();
if (parameters.length > 0) {
methodName += "[" + parameters[0].toString() + "]";
}
return methodName;
}
public void onTestSuccess(ITestResult result) {
System.out.println("##teamcity[testFinished name=\'" + result.getMethod().getMethodName() + "\']");
System.out.println("##teamcity[testFinished name=\'" + getMethodName(result) + "\']");
}
public String getTrace(Throwable tr) {
@@ -68,17 +77,17 @@ public class IDEATestNGRemoteListener implements ISuiteListener, IResultListener
final Throwable ex = result.getThrowable();
final String trace = getTrace(ex);
final Map<String, String> attrs = new HashMap<String, String>();
attrs.put("name", result.getMethod().getMethodName());
attrs.put("name", getMethodName(result));
final String failureMessage = ex.getMessage();
attrs.put("message", failureMessage != null ? failureMessage : "");
attrs.put("details", trace);
attrs.put("error", "true");
System.out.println(ServiceMessage.asString(ServiceMessageTypes.TEST_FAILED, attrs));
System.out.println("##teamcity[testFinished name=\'" + result.getMethod().getMethodName() + "\']");
System.out.println("##teamcity[testFinished name=\'" + getMethodName(result) + "\']");
}
public void onTestSkipped(ITestResult result) {
System.out.println("##teamcity[testFinished name=\'" + result.getMethod().getMethodName() + "\']");
System.out.println("##teamcity[testFinished name=\'" + getMethodName(result) + "\']");
}
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {