private void ProcessOnExited(object sender, EventArgs eventArgs)
        {
            Log.Info(string.Format("Process on exited for {0}", processId));

            var theProcess = sender as Process;

            if (theProcess != null)
            {
                using (var reader = theProcess.StandardOutput)
                {
                    var result = reader.ReadToEnd();
                    processOutput.AppendLine(result);
                    Console.WriteLine(result);
                }
            }

            var args = new ProcessRunnerExitedEventArgs
            {
                ProcessOutput       = processOutput,
                TestsResultFilePath = resultFilePath,
                ProcessId           = processId
            };

            OnProcessExited(args);
        }
        protected virtual void OnProcessExited(ProcessRunnerExitedEventArgs e)
        {
            var handler = ProcessExited;

            if (handler != null)
            {
                handler(this, e);
            }
        }
        private void TestProcessRunnerOnProcessExited(object sender, ProcessRunnerExitedEventArgs e)
        {
            Log.Info(string.Format("Ended process for: {0} {1}", e.TestsResultFilePath, e.ProcessId));
            Log.Info(string.Format("Output of the process is: {0} {1}", e.ProcessOutput, e.ProcessId));
            nodesManager.FreeNode(e.ProcessId);
            var testsResultsModel = resultMerger.GetResult(e.TestsResultFilePath);

            resultPrinter.PrintIntermediate(testsResultsModel, e.TestsResultFilePath, e.ProcessOutput);
            processesCountdown.Signal();
        }