public virtual void OnTestRunEnd()
        {
            lock (_testRunnerEndExecutedLock)
            {
                if (_testRunnerEndExecuted)
                {
                    return;
                }

                _testRunnerEndExecuted = true;
            }

            var testRunResultResult = _testRunResultCollector.GetCurrentResult();

            if (testRunResultResult is ISuccess <TestRunResult> success)
            {
                _cucumberMessageSender.SendTestRunFinished(success.Result);
            }

            FireEvents(HookType.AfterTestRun);
        }