mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
junit/testng sm: escape names e.g. for groovy tests with special names
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
package com.intellij.junit4;
|
||||
|
||||
import com.intellij.rt.execution.junit.ComparisonFailureData;
|
||||
import jetbrains.buildServer.messages.serviceMessages.MapSerializerUtil;
|
||||
import jetbrains.buildServer.messages.serviceMessages.ServiceMessage;
|
||||
import jetbrains.buildServer.messages.serviceMessages.ServiceMessageTypes;
|
||||
import junit.framework.ComparisonFailure;
|
||||
@@ -44,6 +45,10 @@ class SMTestSender extends RunListener {
|
||||
private String myParamName;
|
||||
private boolean myIgnoreTopSuite;
|
||||
|
||||
private static String escapeName(String str) {
|
||||
return MapSerializerUtil.escapeStr(str, MapSerializerUtil.STD_ESCAPER);
|
||||
}
|
||||
|
||||
public void testRunStarted(Description description) throws Exception {
|
||||
myCurrentClassName = myIgnoreTopSuite ? description.toString() : null;
|
||||
System.out.println("##teamcity[enteredTheMatrix]\n");
|
||||
@@ -51,10 +56,10 @@ class SMTestSender extends RunListener {
|
||||
|
||||
public void testRunFinished(Result result) throws Exception {
|
||||
if (myParamName != null) {
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + myParamName + "\']\n");
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + escapeName(myParamName) + "\']\n");
|
||||
}
|
||||
if (myCurrentClassName != null) {
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + myCurrentClassName + "\']\n");
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + escapeName(myCurrentClassName) + "\']\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,32 +67,32 @@ class SMTestSender extends RunListener {
|
||||
final String methodName = JUnit4ReflectionUtil.getMethodName(description);
|
||||
final int paramStart = methodName.indexOf('[');
|
||||
if (paramStart < 0 && myParamName != null){
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + myParamName + "\']");
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + escapeName(myParamName) + "\']");
|
||||
myParamName = null;
|
||||
}
|
||||
final String className = JUnit4ReflectionUtil.getClassName(description);
|
||||
if (!className.equals(myCurrentClassName)) {
|
||||
if (myCurrentClassName != null) {
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + myCurrentClassName + "\']");
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + escapeName(myCurrentClassName) + "\']");
|
||||
}
|
||||
myCurrentClassName = className;
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + myCurrentClassName + "\']");
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + escapeName(myCurrentClassName) + "\']");
|
||||
}
|
||||
if (paramStart > -1) {
|
||||
final String paramName = methodName.substring(paramStart, methodName.length());
|
||||
if (!paramName.equals(myParamName)) {
|
||||
if (myParamName != null) {
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + myParamName + "\']");
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + escapeName(myParamName) + "\']");
|
||||
}
|
||||
myParamName = paramName;
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + myParamName + "\']");
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + escapeName(myParamName) + "\']");
|
||||
}
|
||||
}
|
||||
System.out.println("##teamcity[testStarted name=\'" + methodName + "\']");
|
||||
System.out.println("##teamcity[testStarted name=\'" + escapeName(methodName) + "\']");
|
||||
}
|
||||
|
||||
public void testFinished(Description description) throws Exception {
|
||||
System.out.println("\n##teamcity[testFinished name=\'" + JUnit4ReflectionUtil.getMethodName(description) + "\']");
|
||||
System.out.println("\n##teamcity[testFinished name=\'" + escapeName(JUnit4ReflectionUtil.getMethodName(description)) + "\']");
|
||||
}
|
||||
|
||||
public void testFailure(Failure failure) throws Exception {
|
||||
@@ -197,8 +202,8 @@ class SMTestSender extends RunListener {
|
||||
private static void sendTree(JUnit4IdeaTestRunner runner, Object description, List tests) {
|
||||
if (tests.isEmpty()) {
|
||||
final String methodName = JUnit4ReflectionUtil.getMethodName((Description)description);
|
||||
System.out.println("##teamcity[suiteTreeNode name=\'" + methodName +
|
||||
"\' locationHint=\'java:test://" + JUnit4ReflectionUtil.getClassName((Description)description) + "." + methodName + "\']");
|
||||
System.out.println("##teamcity[suiteTreeNode name=\'" + escapeName(methodName) +
|
||||
"\' locationHint=\'java:test://" + escapeName(JUnit4ReflectionUtil.getClassName((Description)description) + "." + methodName) + "\']");
|
||||
}
|
||||
boolean pass = false;
|
||||
for (Iterator iterator = tests.iterator(); iterator.hasNext(); ) {
|
||||
@@ -219,13 +224,13 @@ class SMTestSender extends RunListener {
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println("##teamcity[suiteTreeStarted name=\'" + className +
|
||||
"\' locationHint=\'java:suite://" + locationHint + "\']");
|
||||
System.out.println("##teamcity[suiteTreeStarted name=\'" + escapeName(className) +
|
||||
"\' locationHint=\'java:suite://" + escapeName(locationHint) + "\']");
|
||||
}
|
||||
sendTree(runner, next, childTests);
|
||||
}
|
||||
if (pass) {
|
||||
System.out.println("##teamcity[suiteTreeEnded name=\'" + JUnit4ReflectionUtil.getClassName((Description)description) + "\']");
|
||||
System.out.println("##teamcity[suiteTreeEnded name=\'" + escapeName(JUnit4ReflectionUtil.getClassName((Description)description)) + "\']");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.testng;
|
||||
|
||||
import jetbrains.buildServer.messages.serviceMessages.MapSerializerUtil;
|
||||
import jetbrains.buildServer.messages.serviceMessages.ServiceMessage;
|
||||
import jetbrains.buildServer.messages.serviceMessages.ServiceMessageTypes;
|
||||
import org.testng.internal.IResultListener;
|
||||
@@ -21,22 +22,26 @@ public class IDEATestNGRemoteListener implements ISuiteListener, IResultListener
|
||||
private String myMethodName;
|
||||
private int myInvocationCount = 0;
|
||||
|
||||
private static String escapeName(String str) {
|
||||
return MapSerializerUtil.escapeStr(str, MapSerializerUtil.STD_ESCAPER);
|
||||
}
|
||||
|
||||
public void onConfigurationSuccess(ITestResult result) {
|
||||
final String className = result.getTestClass().getName();
|
||||
System.out.println("##teamcity[testSuiteStarted name=\'" + className + "\']");
|
||||
System.out.println("##teamcity[testSuiteStarted name=\'" + escapeName(className) + "\']");
|
||||
final String methodName = result.getMethod().getMethodName();
|
||||
System.out.println("##teamcity[testStarted name=\'" + methodName + "\']");
|
||||
System.out.println("##teamcity[testStarted name=\'" + escapeName(methodName) + "\']");
|
||||
onTestSuccess(result);
|
||||
System.out.println("\n##teamcity[testSuiteFinished name=\'" + className + "\']");
|
||||
System.out.println("\n##teamcity[testSuiteFinished name=\'" + escapeName(className) + "\']");
|
||||
}
|
||||
|
||||
public void onConfigurationFailure(ITestResult result) {
|
||||
final String className = result.getTestClass().getName();
|
||||
System.out.println("##teamcity[testSuiteStarted name=\'" + className + "\']");
|
||||
System.out.println("##teamcity[testSuiteStarted name=\'" + escapeName(className) + "\']");
|
||||
final String methodName = result.getMethod().getMethodName();
|
||||
System.out.println("##teamcity[testStarted name=\'" + methodName + "\']");
|
||||
System.out.println("##teamcity[testStarted name=\'" + escapeName(methodName) + "\']");
|
||||
onTestFailure(result);
|
||||
System.out.println("\n##teamcity[testSuiteFinished name=\'" + className + "\']");
|
||||
System.out.println("\n##teamcity[testSuiteFinished name=\'" + escapeName(className) + "\']");
|
||||
}
|
||||
|
||||
public void onConfigurationSkip(ITestResult itr) {
|
||||
@@ -44,26 +49,26 @@ public class IDEATestNGRemoteListener implements ISuiteListener, IResultListener
|
||||
|
||||
public void onStart(ISuite suite) {
|
||||
System.out.println("##teamcity[enteredTheMatrix]");
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + suite.getName() + "\']");
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + escapeName(suite.getName()) + "\']");
|
||||
}
|
||||
|
||||
public void onFinish(ISuite suite) {
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + suite.getName() + "\']");
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + escapeName(suite.getName()) + "\']");
|
||||
}
|
||||
|
||||
public void onTestStart(ITestResult result) {
|
||||
final String className = result.getTestClass().getName();
|
||||
if (myCurrentClassName == null || !myCurrentClassName.equals(className)) {
|
||||
if (myCurrentClassName != null) {
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + myCurrentClassName + "\']");
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + escapeName(myCurrentClassName) + "\']");
|
||||
}
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + className + "\']");
|
||||
System.out.println("##teamcity[testSuiteStarted name =\'" + escapeName(className) + "\']");
|
||||
myCurrentClassName = className;
|
||||
myInvocationCount = 0;
|
||||
}
|
||||
String methodName = getMethodName(result, false);
|
||||
System.out.println("##teamcity[testStarted name=\'" +
|
||||
methodName + "\' locationHint=\'java:test://" + className + "." + methodName + "\']");
|
||||
System.out.println("##teamcity[testStarted name=\'" + escapeName(methodName) +
|
||||
"\' locationHint=\'java:test://" + escapeName(className + "." + methodName) + "\']");
|
||||
}
|
||||
|
||||
private String getMethodName(ITestResult result) {
|
||||
@@ -89,7 +94,7 @@ public class IDEATestNGRemoteListener implements ISuiteListener, IResultListener
|
||||
}
|
||||
|
||||
public void onTestSuccess(ITestResult result) {
|
||||
System.out.println("\n##teamcity[testFinished name=\'" + getMethodName(result) + "\']");
|
||||
System.out.println("\n##teamcity[testFinished name=\'" + escapeName(getMethodName(result)) + "\']");
|
||||
}
|
||||
|
||||
public String getTrace(Throwable tr) {
|
||||
@@ -111,25 +116,20 @@ public class IDEATestNGRemoteListener implements ISuiteListener, IResultListener
|
||||
attrs.put("details", trace);
|
||||
attrs.put("error", "true");
|
||||
System.out.println(ServiceMessage.asString(ServiceMessageTypes.TEST_FAILED, attrs));
|
||||
System.out.println("\n##teamcity[testFinished name=\'" + methodName + "\']");
|
||||
System.out.println("\n##teamcity[testFinished name=\'" + escapeName(methodName) + "\']");
|
||||
}
|
||||
|
||||
public void onTestSkipped(ITestResult result) {
|
||||
System.out.println("\n##teamcity[testFinished name=\'" + getMethodName(result) + "\']");
|
||||
System.out.println("\n##teamcity[testFinished name=\'" + escapeName(getMethodName(result)) + "\']");
|
||||
}
|
||||
|
||||
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
|
||||
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {}
|
||||
|
||||
}
|
||||
|
||||
public void onStart(ITestContext context) {
|
||||
//System.out.println("##teamcity[testSuiteStarted name =\'" + context.getName() + "\']");
|
||||
}
|
||||
public void onStart(ITestContext context) {}
|
||||
|
||||
public void onFinish(ITestContext context) {
|
||||
if (myCurrentClassName != null) {
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + myCurrentClassName + "\']");
|
||||
System.out.println("##teamcity[testSuiteFinished name=\'" + escapeName(myCurrentClassName) + "\']");
|
||||
}
|
||||
//System.out.println("##teamcity[testSuiteFinished name=\'" + context.getName() + "\']");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user