public String getString()

in surefire-providers/common-java5/src/main/java/org/apache/maven/surefire/report/SmartStackTraceParser.java [70:124]


    public String getString() {
        if (testClass == null) {
            return throwable.getLocalizedMessage();
        }

        final StringBuilder result = new StringBuilder();
        final List<StackTraceElement> stackTraceElements = focusOnClass(stackTrace, testClass);
        reverse(stackTraceElements);
        final String testClassSimpleName = toSimpleClassName(testClassName);
        if (stackTraceElements.isEmpty()) {
            result.append(testClassSimpleName);
            if (isNotEmpty(testMethodName)) {
                result.append(".").append(testMethodName);
            }
        } else {
            for (int i = 0, size = stackTraceElements.size(); i < size; i++) {
                final StackTraceElement stackTraceElement = stackTraceElements.get(i);
                final boolean isTestClassName = stackTraceElement.getClassName().equals(testClassName);
                if (i == 0) {
                    result.append(testClassSimpleName).append(isTestClassName ? '.' : '>');
                }

                if (!isTestClassName) {
                    result.append(toSimpleClassName(stackTraceElement.getClassName()))
                            .append('.');
                }

                result.append(stackTraceElement.getMethodName())
                        .append(':')
                        .append(stackTraceElement.getLineNumber())
                        .append("->");
            }

            if (result.length() >= 2) {
                result.setLength(result.length() - 2);
            }
        }

        final Throwable target = throwable.getTarget();
        final Class<?> excType = target.getClass();
        final String excClassName = excType.getName();
        final String msg = throwable.getMessage();

        if (!(target instanceof AssertionError
                || "junit.framework.AssertionFailedError".equals(excClassName)
                || "junit.framework.ComparisonFailure".equals(excClassName)
                || excClassName.startsWith("org.opentest4j."))) {
            result.append(rootIsInclass() ? " " : " » ").append(toMinimalThrowableMiniMessage(excType));
        }

        if (isNotEmpty(msg)) {
            result.append(' ').append(msg);
        }
        return result.toString();
    }