public void GenerateReport() { report = new ReportElements.NUnitExecutionReport(); report.ProjectName = specFlowProject.ProjectName; report.GeneratedAt = DateTime.Now.ToString("g", CultureInfo.InvariantCulture); XmlDocument xmlTestResult = LoadXmlTestResult(); report.NUnitXmlTestResult = xmlTestResult.DocumentElement; if (File.Exists(labeledTestOutputPath)) { using(var reader = new StreamReader(labeledTestOutputPath)) { string currentTest = "unknown"; List<string> testLines = new List<string>(); string line; while ((line = reader.ReadLine()) != null) { if (line.StartsWith("***")) { CloseCurrentTest(testLines, currentTest); currentTest = line.Trim('*', ' '); } else { testLines.Add(line); } } CloseCurrentTest(testLines, currentTest); } } }
protected override void ExtendReport(ReportElements.NUnitExecutionReport report) { if (File.Exists(reportParameters.LabelledTestOutput)) { using (var reader = new StreamReader(reportParameters.LabelledTestOutput)) { string currentTest = "unknown"; List <string> testLines = new List <string>(); string line; while ((line = reader.ReadLine()) != null) { if (line.StartsWith("***"))//nunit2 separator { CloseCurrentTest(testLines, currentTest, report); currentTest = line.Trim('*', ' '); } else if (line.StartsWith("=>"))//nunit3 separator { CloseCurrentTest(testLines, currentTest, report); currentTest = line.Replace("=>", "").Trim(); } else { testLines.Add(line); } } CloseCurrentTest(testLines, currentTest, report); } } }
private void CloseCurrentTest(List <string> testLines, string currentTest, ReportElements.NUnitExecutionReport report) { if (testLines.Count > 0) { report.ScenarioOutputs.Add(new ScenarioOutput { Name = currentTest, Text = string.Join(Environment.NewLine, testLines.ToArray()) }); testLines.Clear(); } }
protected virtual ReportElements.NUnitExecutionReport GenerateReport(SpecFlowProject specFlowProject) { var report = new ReportElements.NUnitExecutionReport(); report.ProjectName = specFlowProject.ProjectSettings.ProjectName; report.GeneratedAt = DateTime.Now.ToString("g", CultureInfo.InvariantCulture); XmlDocument xmlTestResult = LoadXmlTestResult(); report.NUnitXmlTestResult = xmlTestResult.DocumentElement; ExtendReport(report); return report; }
protected virtual ReportElements.NUnitExecutionReport GenerateReport(SpecFlowProject specFlowProject) { var report = new ReportElements.NUnitExecutionReport(); report.ProjectName = specFlowProject.ProjectSettings.ProjectName; report.GeneratedAt = DateTime.Now.ToString("g", CultureInfo.InvariantCulture); XmlDocument xmlTestResult = LoadXmlTestResult(); report.NUnitXmlTestResult = xmlTestResult.DocumentElement; ExtendReport(report); return(report); }
protected override void ExtendReport(NUnitExecutionReport.ReportElements.NUnitExecutionReport report) { XmlDocument reportDoc = new XmlDocument(); reportDoc.Load(reportParameters.XmlTestResult); XmlNameTable nameTable = new NameTable(); XmlNamespaceManager namespaceManager = new XmlNamespaceManager(nameTable); namespaceManager.AddNamespace("mstest", "http://microsoft.com/schemas/VisualStudio/TeamTest/2006"); var testResultNodes = reportDoc.SelectNodes("//mstest:UnitTestResult", namespaceManager); if (testResultNodes == null) return; foreach (XmlElement testResultNode in testResultNodes) { var testIdAttr = testResultNode.Attributes["testId"]; if (testIdAttr == null) continue; var testMethodElement = reportDoc.SelectSingleNode( string.Format( "//mstest:UnitTest[@id = '{0}']/mstest:TestMethod", testIdAttr.Value), namespaceManager) as XmlElement; if (testMethodElement == null) continue; var classNameAttr = testMethodElement.Attributes["className"]; if (classNameAttr == null) continue; string testClassName = classNameAttr.Value.Split(new[] {','}, 2)[0].Trim(); var nameAttr = testMethodElement.Attributes["name"]; if (nameAttr == null) continue; var stdOut = testResultNode.SelectSingleNode("mstest:Output/mstest:StdOut", namespaceManager); if (stdOut == null) continue; report.ScenarioOutputs.Add( new ScenarioOutput() { Name = testClassName + "." + nameAttr.Value, Text = stdOut.InnerText } ); } }
private void TransformReport(ReportElements.NUnitExecutionReport report, SpecFlowProject specFlowProject) { XmlSerializer serializer = new XmlSerializer(typeof(ReportElements.NUnitExecutionReport), ReportElements.NUnitExecutionReport.XmlNamespace); if (XsltHelper.IsXmlOutput(ReportParameters.OutputFile)) { XsltHelper.TransformXml(serializer, report, ReportParameters.OutputFile); } else { XsltHelper.TransformHtml(serializer, report, ReportType, ReportParameters.OutputFile, specFlowProject.Configuration.SpecFlowConfiguration, ReportParameters.XsltFile); } }
protected virtual void ExtendReport(ReportElements.NUnitExecutionReport report) { }