Exemple #1
0
        public void WriteTestResult(Guid executionId, VsTestResult testResult)
        {
            if (!inResults)
            {
                throw new InvalidOperationException("WriteStartTestResults() not called");
            }

            xml.WriteStartElement("UnitTestResult", XmlNamespace);
            xml.WriteAttributeString("executionId", executionId.ToString());
            xml.WriteAttributeString("testId", testResult.TestCase.Id.ToString());
            xml.WriteAttributeString("testName", testResult.DisplayName);
            xml.WriteAttributeString("computerName", testResult.ComputerName);
            xml.WriteAttributeString("duration", testResult.Duration.ToString("c", CultureInfo.InvariantCulture));
            xml.WriteAttributeString("startTime", testResult.StartTime.ToString("O", CultureInfo.InvariantCulture));
            xml.WriteAttributeString("endTime", testResult.EndTime.ToString("O", CultureInfo.InvariantCulture));
            xml.WriteAttributeString("testType", TestType);
            xml.WriteAttributeString("outcome", VsTestOutcomeHelper.GetOutcomeString(testResult.Outcome));
            xml.WriteAttributeString("testListId", TestListNotInAListId);
            xml.WriteAttributeString("relativeResultsDirectory", executionId.ToString());

            bool hasErrorMessage = !string.IsNullOrEmpty(testResult.ErrorMessage);
            bool hasStackTrace   = !string.IsNullOrEmpty(testResult.ErrorStackTrace);
            bool hasStdOut       = false;

            if (hasErrorMessage || hasStackTrace || hasStdOut)
            {
                xml.WriteStartElement("Output", XmlNamespace);

                if (hasErrorMessage || hasStackTrace)
                {
                    xml.WriteStartElement("ErrorInfo", XmlNamespace);

                    if (hasErrorMessage)
                    {
                        xml.WriteElementString("Message", XmlNamespace, testResult.ErrorMessage);
                    }
                    if (hasStackTrace)
                    {
                        xml.WriteElementString("StackTrace", XmlNamespace, testResult.ErrorStackTrace);
                    }

                    xml.WriteEndElement(); // ErrorInfo
                }
                if (hasStdOut)
                {
                    // TODO: Figure out how to include StdOut messages
                    //xml.WriteElementString("StdOut", XmlNamespace, ((Microsoft.VisualStudio.TestPlatform.ObjectModel.AttachmentSet)testResult.Attachments[0]).;
                }

                xml.WriteEndElement(); // Output
            }

            xml.WriteEndElement(); // UnitTestResult
        }
Exemple #2
0
        public void WriteResultSummary(VsTestOutcome outcome, Xunit.ExecutionSummary executionSummary)
        {
            if (!inDocument)
            {
                throw new InvalidOperationException("WriteStartDocument() not called");
            }

            xml.WriteStartElement("ResultSummary", XmlNamespace);
            xml.WriteAttributeString("outcome", VsTestOutcomeHelper.GetOutcomeString(outcome));

            xml.WriteStartElement("Counters", XmlNamespace);
            xml.WriteAttributeString("total", executionSummary.Total.ToString(CultureInfo.InvariantCulture));
            xml.WriteAttributeString("executed", (executionSummary.Total - executionSummary.Skipped).ToString(CultureInfo.InvariantCulture));
            xml.WriteAttributeString("passed", (executionSummary.Total - (executionSummary.Failed + executionSummary.Skipped)).ToString(CultureInfo.InvariantCulture));
            xml.WriteAttributeString("inconclusive", executionSummary.Skipped.ToString(CultureInfo.InvariantCulture));
            xml.WriteAttributeString("failed", executionSummary.Failed.ToString(CultureInfo.InvariantCulture));
            xml.WriteAttributeString("error", executionSummary.Errors.ToString(CultureInfo.InvariantCulture));
            xml.WriteEndElement(); // Counters

            xml.WriteEndElement(); // ResultSummary
        }