public void StartTest(XmlDocument xmlDoc) { try { var id = xmlDoc.SelectSingleNode("/*/@id").Value; var parentId = xmlDoc.SelectSingleNode("/*/@parentId").Value; var name = xmlDoc.SelectSingleNode("/*/@name").Value; var fullname = xmlDoc.SelectSingleNode("/*/@fullname").Value; var startTime = DateTime.UtcNow; var startTestRequest = new StartTestItemRequest { StartTime = startTime, Name = name, Type = TestItemType.Step }; var beforeTestEventArg = new TestItemStartedEventArgs(Bridge.Service, startTestRequest, null, xmlDoc.OuterXml); try { BeforeTestStarted?.Invoke(this, beforeTestEventArg); } catch (Exception exp) { Console.WriteLine("Exception was thrown in 'BeforeTestStarted' subscriber." + Environment.NewLine + exp); } if (!beforeTestEventArg.Canceled) { var testReporter = _flowItems[parentId].TestReporter.StartChildTestReporter(startTestRequest); _flowItems[id] = new FlowItemInfo(id, parentId, FlowItemInfo.FlowType.Test, fullname, testReporter, startTime); try { AfterTestStarted?.Invoke(this, new TestItemStartedEventArgs(Bridge.Service, startTestRequest, testReporter, xmlDoc.OuterXml)); } catch (Exception exp) { Console.WriteLine("Exception was thrown in 'AfterTestStarted' subscriber." + Environment.NewLine + exp); } } } catch (Exception exception) { Console.WriteLine("ReportPortal exception was thrown." + Environment.NewLine + exception); } }
private void StartSuite(XmlDocument xmlDoc) { try { var type = xmlDoc.SelectSingleNode("/*/@type").Value; var id = xmlDoc.SelectSingleNode("/*/@id").Value; var parentId = xmlDoc.SelectSingleNode("/*/@parentId").Value; var name = xmlDoc.SelectSingleNode("/*/@name").Value; var fullname = xmlDoc.SelectSingleNode("/*/@fullname").Value; var startTime = DateTime.UtcNow; var startSuiteRequest = new StartTestItemRequest { StartTime = startTime, Name = name, Type = TestItemType.Suite }; var beforeSuiteEventArg = new TestItemStartedEventArgs(Bridge.Service, startSuiteRequest, null, xmlDoc.OuterXml); var rootNamespaces = Config.GetValues <string>("rootNamespaces", null); if (rootNamespaces != null && rootNamespaces.Any(n => n == name)) { beforeSuiteEventArg.Canceled = true; } if (!beforeSuiteEventArg.Canceled) { try { BeforeSuiteStarted?.Invoke(this, beforeSuiteEventArg); } catch (Exception exp) { Console.WriteLine("Exception was thrown in 'BeforeSuiteStarted' subscriber." + Environment.NewLine + exp); } } if (!beforeSuiteEventArg.Canceled) { ITestReporter suiteReporter; if (string.IsNullOrEmpty(parentId) || !_flowItems.ContainsKey(parentId)) { suiteReporter = Bridge.Context.LaunchReporter.StartChildTestReporter(startSuiteRequest); } else { var parentFlowItem = FindReportedParentFlowItem(parentId); if (parentFlowItem == null) { suiteReporter = Bridge.Context.LaunchReporter.StartChildTestReporter(startSuiteRequest); } else { suiteReporter = parentFlowItem.TestReporter.StartChildTestReporter(startSuiteRequest); } } _flowItems[id] = new FlowItemInfo(id, parentId, FlowItemInfo.FlowType.Suite, name, suiteReporter, startTime); try { AfterSuiteStarted?.Invoke(this, new TestItemStartedEventArgs(Bridge.Service, startSuiteRequest, suiteReporter, xmlDoc.OuterXml)); } catch (Exception exp) { Console.WriteLine("Exception was thrown in 'AfterSuiteStarted' subscriber." + Environment.NewLine + exp); } } else { _flowItems[id] = new FlowItemInfo(id, parentId, FlowItemInfo.FlowType.Suite, name, null, startTime); } } catch (Exception exception) { Console.WriteLine("ReportPortal exception was thrown." + Environment.NewLine + exception); } }