/// <summary>
        /// Send message about skipped test in report portal.
        /// </summary>
        /// <param name="args"></param>
        protected virtual void HandleSkipped(MessageHandlerArgs <ITestSkipped> args)
        {
            lock (Logger.LockObject)
            {
                try
                {
                    var    testEvent = args.Message;
                    string key       = testEvent.Test.TestCase.UniqueID;

                    ITestReporter testReporter = TestReporterDictionary[key];

                    testReporter.Finish(new FinishTestItemRequest()
                    {
                        EndTime = DateTime.UtcNow,
                        Status  = Status.Skipped,
                        Issue   = new Issue
                        {
                            Type    = WellKnownIssueType.NotDefect,
                            Comment = testEvent.Reason
                        }
                    });

                    TestReporterDictionary.Remove(key);
                }
                catch (Exception exp)
                {
                    Logger.LogError(exp.ToString());
                }
            }
        }
        /// <summary>
        /// Send message about passed test in report portal.
        /// </summary>
        /// <param name="args"></param>
        protected virtual void HandlePassed(MessageHandlerArgs <ITestPassed> args)
        {
            lock (Logger.LockObject)
            {
                try
                {
                    var    testEvent = args.Message;
                    string key       = testEvent.Test.TestCase.UniqueID;

                    ITestReporter testReporter = TestReporterDictionary[key];

                    if (!string.IsNullOrEmpty(args.Message.Output))
                    {
                        testReporter.Log(new AddLogItemRequest
                        {
                            Level = LogLevel.Debug,
                            Time  = DateTime.UtcNow,
                            Text  = $"Test output:{Environment.NewLine}{args.Message.Output}"
                        });
                    }

                    testReporter.Finish(new FinishTestItemRequest()
                    {
                        EndTime = DateTime.UtcNow,
                        Status  = Status.Passed
                    });

                    TestReporterDictionary.Remove(key);
                }
                catch (Exception exp)
                {
                    Logger.LogError(exp.ToString());
                }
            }
        }