protected virtual Task RunTests(Project testProject, ConfigurationSelector configuration) { return(Task.Run(() => { string command = TestCommandSetting.ForProject(testProject, configuration); int argumentsStartIndex = command.IndexOf(' '); string pathToExecutable = command.Substring(0, argumentsStartIndex); string arguments = command.Substring(argumentsStartIndex); using (Process p = new Process()) { p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.FileName = pathToExecutable; p.StartInfo.Arguments = arguments; LoggingService.Info($"Running Tests Using Command:\n{command}"); var success = p.Start(); p.WaitForExit(); LoggingService.Info($"Testing Output:\n\n{p.StandardOutput.ReadToEnd()}"); LoggingService.Info($"Testing Error:\n\n{p.StandardError.ReadToEnd()}"); } })); }
public async Task GatherCoverageAsync() { if (pad.SelectedTestProject == null) { return; } if (TestCommandSetting.Current() == null) { pad.PresentTestCommandDialog(); return; } try { pad.DisableUI(); var progress = new Progress <Log>(l => pad.SetStatusMessage(l.Message, l.Level)); await GatherCoverageForProjectAsync(pad.SelectedTestProject, progress); } catch (Exception e) { LogException(e); } finally { pad.EnableUI(); } }