public void CaseFailed(FailResult result) { var @case = result.Case; Message("testStarted name='{0}'", @case.Name); Output(@case, result.Output); Message("testFailed name='{0}' message='{1}' details='{2}'", @case.Name, result.PrimaryExceptionMessage(), result.CompoundStackTrace()); Message("testFinished name='{0}' duration='{1}'", @case.Name, DurationInMilliseconds(result.Duration)); }
public void CaseFailed(FailResult result) { var @case = result.Case; tdnet.TestFinished(new TestResult { Name = @case.Name, State = TestState.Failed, Message = result.PrimaryExceptionTypeName(), StackTrace = result.CompoundStackTrace(), }); }
public ConventionResult Execute(Listener listener, params Type[] candidateTypes) { var conventionResult = new ConventionResult(GetType().FullName); foreach (var testClass in Classes.Filter(candidateTypes)) { var classResult = new ClassResult(testClass.FullName); var methods = Methods.Filter(testClass); var cases = methods.SelectMany(method => CasesForMethod(testClass, method)).ToArray(); var casesBySkipState = cases.ToLookup(CaseExecution.SkipPredicate); var casesToSkip = casesBySkipState[true]; var casesToExecute = casesBySkipState[false]; foreach (var @case in casesToSkip) { listener.CaseSkipped(@case); classResult.Add(CaseResult.Skipped(@case.Name, CaseExecution.SkipReasonProvider(@case))); } var caseExecutions = casesToExecute.Select(@case => new CaseExecution(@case)).ToArray(); if (caseExecutions.Any()) { ClassExecution.Behavior.Execute(testClass, this, caseExecutions); foreach (var caseExecution in caseExecutions) { if (caseExecution.Exceptions.Any()) { var failResult = new FailResult(caseExecution); listener.CaseFailed(failResult); classResult.Add(CaseResult.Failed(failResult.Case.Name, failResult.Duration, failResult.PrimaryExceptionMessage(), failResult.CompoundStackTrace(), failResult.PrimaryExceptionTypeName())); } else { var passResult = new PassResult(caseExecution); listener.CasePassed(passResult); classResult.Add(CaseResult.Passed(passResult.Case.Name, passResult.Duration)); } } } conventionResult.Add(classResult); } return conventionResult; }