示例#1
0
        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()}");
                }
            }));
        }
示例#2
0
        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();
            }
        }