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);
        }
示例#2
0
        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();
            }
        }