public static void AfterTestRun() { try { if (_launchReporter != null) { var request = new FinishLaunchRequest { EndTime = DateTime.UtcNow }; var eventArg = new RunFinishedEventArgs(_service, request, _launchReporter); ReportPortalAddin.OnBeforeRunFinished(null, eventArg); if (!eventArg.Canceled) { _launchReporter.Finish(request); var sw = Stopwatch.StartNew(); _traceLogger.Info($"Finishing to send results to ReportPortal..."); _launchReporter.Sync(); _traceLogger.Info($"Elapsed: {sw.Elapsed}"); _traceLogger.Info(_launchReporter.StatisticsCounter.ToString()); ReportPortalAddin.OnAfterRunFinished(null, new RunFinishedEventArgs(_service, request, _launchReporter)); } } } catch (Exception exp) { _traceLogger.Error(exp.ToString()); } }
public void Sync() { lock (_lockObj) { if (_launchesCount == 0) { _launch.Sync(); } } }
private void Events_TestRunComplete(object sender, TestRunCompleteEventArgs e) { //TODO: apply smarter way to finish suites in real-time tests execution //finish suites while (_suitesflow.Count != 0) { var deeperKey = _suitesflow.Keys.OrderBy(s => s.Split('.').Length).Last(); TraceLogger.Verbose($"Finishing namespace '{deeperKey}'"); var deeperSuite = _suitesflow[deeperKey]; var finishSuiteRequest = new FinishTestItemRequest { EndTime = DateTime.UtcNow, //TODO: identify correct suite status based on inner nodes Status = Status.Passed }; deeperSuite.Finish(finishSuiteRequest); _suitesflow.Remove(deeperKey); } // finish launch var requestFinishLaunch = new FinishLaunchRequest { EndTime = DateTime.UtcNow }; _launchReporter.Finish(requestFinishLaunch); Stopwatch stopwatch = Stopwatch.StartNew(); Console.Write("Finishing to send results to Report Portal..."); try { _launchReporter.Sync(); } catch (Exception exp) { Console.WriteLine(exp); throw; } stopwatch.Stop(); Console.WriteLine($" Sync time: {stopwatch.Elapsed}"); }
private void Events_TestRunComplete(object sender, TestRunCompleteEventArgs e) { try { //TODO: apply smarter way to finish suites in real-time tests execution //finish suites while (_suitesflow.Count != 0) { var deeperKey = _suitesflow.Keys.OrderBy(s => s.Split('.').Length).Last(); TraceLogger.Verbose($"Finishing namespace '{deeperKey}'"); var deeperSuite = _suitesflow[deeperKey]; var finishSuiteRequest = new FinishTestItemRequest { EndTime = DateTime.UtcNow, //TODO: identify correct suite status based on inner nodes Status = Status.Passed }; deeperSuite.Finish(finishSuiteRequest); _suitesflow.Remove(deeperKey); } // finish launch var requestFinishLaunch = new FinishLaunchRequest { EndTime = DateTime.UtcNow }; _launchReporter.Finish(requestFinishLaunch); if (Environment.GetEnvironmentVariable("DTA.RerunIterationCount") != null) { Environment.SetEnvironmentVariable("REPORTPORTAL_RerunOfLaunchUuid", _launchReporter.LaunchInfo.Uuid); } Stopwatch stopwatch = Stopwatch.StartNew(); Console.Write("Finishing to send results to Report Portal..."); try { _launchReporter.Sync(); } catch (Exception exp) { Console.WriteLine(exp); throw; } stopwatch.Stop(); Console.WriteLine($" Sync time: {stopwatch.Elapsed}"); } catch (Exception exp) { var error = $"Unexpected exception in {nameof(Events_TestRunComplete)}: {exp}"; TraceLogger.Error(error); Console.WriteLine(error); } }