public void OnSpecificationEnd(SpecificationInfo specification, Result result) { switch (result.Status) { case Status.Passing: break; case Status.NotImplemented: _writer.WriteTestIgnored(GetSpecificationName(specification), "(Not Implemented)"); break; case Status.Ignored: _writer.WriteTestIgnored(GetSpecificationName(specification), "(Ignored)"); break; default: if (result.Exception != null) { _writer.WriteTestFailed(GetSpecificationName(specification), result.Exception.Message, result.Exception.ToString()); } else { _writer.WriteTestFailed(GetSpecificationName(specification), "FAIL", ""); } _failureOccurred = true; break; } var duration = TimeSpan.FromMilliseconds(_timingListener.GetSpecificationTime(specification)); _writer.WriteTestFinished(GetSpecificationName(specification), duration); }
private void RenderSpecifications(XmlWriter reportBuilder, ContextInfo context) { foreach (var specification in _specificationsByContext[context]) { var result = _resultsBySpecification[specification]; string status; switch (result.Status) { case Status.Failing: status = "failed"; break; case Status.Passing: status = "passed"; break; case Status.NotImplemented: status = "not-implemented"; break; case Status.Ignored: status = "ignored"; break; default: if (result.Exception != null) { status = "exception"; } else { status = "failed"; } break; } reportBuilder.WriteStartElement("specification"); reportBuilder.WriteAttributeString("leader", specification.Leader); reportBuilder.WriteAttributeString("name", specification.Name); reportBuilder.WriteAttributeString("field-name", specification.FieldName); reportBuilder.WriteAttributeString("status", status); reportBuilder.WriteAttributeString("time", _timer.GetSpecificationTime(specification).ToString(CultureInfo.InvariantCulture)); RenderError(reportBuilder, result.Exception); RenderCapturedOutput(reportBuilder, specification); reportBuilder.WriteEndElement(); } }