void Start(ProcessStartInfo processStartInfo) { LogCommandLine(processStartInfo); if (ApplicationFileNameExists(processStartInfo.FileName)) { testResultsReader.Start(); processRunner.WorkingDirectory = DirectoryName.Create(processStartInfo.WorkingDirectory); processRunner.RedirectStandardOutputAndErrorToSingleStream = true; processRunner.StartCommandLine("\"" + processStartInfo.FileName + "\" " + processStartInfo.Arguments); Task.WhenAll( processRunner.OpenStandardOutputReader().CopyToAsync(output), processRunner.WaitForExitAsync()).ContinueWith(_ => OnAllTestsFinished()).FireAndForget(); } else { ShowApplicationDoesNotExistMessage(processStartInfo.FileName); } }