public void OnFatalError(ExceptionResult exception)
        {
            string message;

            _server.TaskExplain(_contextTask, "Fatal error: " + exception.Message);
            _server.TaskException(_contextTask, ExceptionResultConverter.ConvertExceptions(exception, out message));
            _server.TaskFinished(_contextTask, message, TaskResult.Exception);
        }
        public void OnFatalError(ExceptionResult exception)
        {
            string message;

            _server.TaskOutput(_runAssemblyTask, "Fatal error: " + exception.Message, TaskOutputType.STDOUT);
            _server.TaskException(_runAssemblyTask, ExceptionResultConverter.ConvertExceptions(exception, out message));
            _server.TaskFinished(_runAssemblyTask, message, TaskResult.Exception);

            _errors += 1;
        }
        public void OnSpecificationEnd(SpecificationInfo specification, Result result)
        {
            var notify = CreateTaskNotificationFor(specification, _currentContext);

            notify(task => _server.TaskProgress(task, null));

            NotifyRedirectedOutput(notify, _specificationOutput);

            TaskResult taskResult = TaskResult.Success;
            string     message    = null;

            switch (result.Status)
            {
            case Status.Failing:
                _errors += 1;

                notify(task => _server.TaskExplain(task, result.Exception.Message));
                notify(task => _server.TaskException(task,
                                                     ExceptionResultConverter.ConvertExceptions(result.Exception, out message)));
                taskResult = TaskResult.Exception;
                break;

            case Status.Passing:
                _successes += 1;

                taskResult = TaskResult.Success;
                break;

            case Status.NotImplemented:
                notify(task => _server.TaskExplain(task, "Not implemented"));
                message    = "Not implemented";
                taskResult = TaskResult.Inconclusive;
                break;

            case Status.Ignored:
                notify(task => _server.TaskExplain(task, "Ignored"));
                taskResult = TaskResult.Skipped;
                break;
            }

            notify(task => _server.TaskFinished(task, message, taskResult));
        }
        public void OnSpecificationEnd(SpecificationInfo specification, Result result)
        {
            var notify = CreateTaskNotificationFor(specification);

            notify(task => _server.TaskProgress(task, null));

            notify(task => _server.TaskOutput(task, result.ConsoleOut, TaskOutputType.STDOUT));
            notify(task => _server.TaskOutput(task, result.ConsoleError, TaskOutputType.STDERR));

            TaskResult taskResult = TaskResult.Success;
            string     message    = null;

            switch (result.Status)
            {
            case Status.Failing:
                notify(task => _server.TaskExplain(task, result.Exception.Message));
                notify(task => _server.TaskException(task,
                                                     ExceptionResultConverter.ConvertExceptions(result.Exception, out message)));
                taskResult = TaskResult.Exception;
                break;

            case Status.Passing:
                taskResult = TaskResult.Success;
                break;

            case Status.NotImplemented:
                notify(task => _server.TaskExplain(task, "Not implemented"));
                message    = "Not implemented";
                taskResult = TaskResult.Skipped;
                break;

            case Status.Ignored:
                notify(task => _server.TaskExplain(task, "Ignored"));
                taskResult = TaskResult.Skipped;
                break;
            }

            notify(task => _server.TaskFinished(task, message, taskResult));
        }