public void TestFailed(string testName, ExceptionInfo exceptionInfo) { if (String.IsNullOrEmpty(testName)) { return; } StringBuilder message = new StringBuilder(); message.AppendFormat(CultureInfo.InvariantCulture, "##teamcity[testFailed name='{0}'", Formatter.FormatValue(testName)); if (exceptionInfo != null) { StringBuilder formattedException = new StringBuilder(); Formatter.FormatException(exceptionInfo, formattedException); Formatter.FormatValue(formattedException); message.AppendFormat(CultureInfo.InvariantCulture, " message='{0}' details='{1}' type='{2}'", Formatter.FormatValue(exceptionInfo.Message), formattedException, Formatter.FormatValue(exceptionInfo.Type)); } message.Append("]"); _writer.WriteLine(message.ToString()); }
internal static void FormatException(ExceptionInfo exceptionInfo, StringBuilder builder) { if (exceptionInfo == null) { return; } if (builder.Length > 0) { builder.AppendLine("--------------------------------"); } builder.AppendFormat("{0}: {1}", FormatValue(exceptionInfo.GetType().ToString()), FormatValue(exceptionInfo.Message)); builder.AppendLine(); if (!String.IsNullOrEmpty(exceptionInfo.Source)) { builder.AppendFormat(" Source: {0}", FormatValue(exceptionInfo.Source)); builder.AppendLine(); } if (!String.IsNullOrEmpty(exceptionInfo.StackTrace)) { builder.AppendFormat(" Stack: {0}", FormatValue(exceptionInfo.StackTrace)); builder.AppendLine(); } if (exceptionInfo.InnerException != null) { FormatException(exceptionInfo.InnerException, builder); } }
static ExceptionInfo GetExceptionInfo(ReportException reportException) { if (reportException == null) { return null; } ExceptionInfo exceptionInfo = new ExceptionInfo(); exceptionInfo.Type = reportException.Type; exceptionInfo.Message = reportException.Message; exceptionInfo.Source = reportException.Source; exceptionInfo.StackTrace = reportException.StackTrace; if (reportException.Exception != null) { exceptionInfo.InnerException = GetExceptionInfo(reportException.Exception); } return exceptionInfo; }
public static ExceptionInfo FromException(Exception exception) { if (exception == null) { return null; } ExceptionInfo result = new ExceptionInfo { Type = exception.GetType().FullName, Message = exception.Message, Source = exception.Source, StackTrace = exception.StackTrace }; if (exception.InnerException != null) { result.InnerException = FromException(exception.InnerException); } return result; }
public void TestFailed(string testName, Exception exception) { TestFailed(testName, ExceptionInfo.FromException(exception)); }