/// <summary> /// Initiate the test run. /// </summary> private void StartRun(ITestListener listener) { // Save Console.Out and Error for later restoration _savedOut = Console.Out; _savedErr = Console.Error; Console.SetOut(new TextCapture(Console.Out)); Console.SetError(new EventListenerTextWriter("Error", Console.Error)); #if PARALLEL // Queue and pump events, unless settings have SynchronousEvents == false if (!Settings.ContainsKey(FrameworkPackageSettings.SynchronousEvents) || !(bool)Settings[FrameworkPackageSettings.SynchronousEvents]) { QueuingEventListener queue = new QueuingEventListener(); Context.Listener = queue; _pump = new EventPump(listener, queue.Events); _pump.Start(); } #endif if (!System.Diagnostics.Debugger.IsAttached && Settings.ContainsKey(FrameworkPackageSettings.DebugTests) && (bool)Settings[FrameworkPackageSettings.DebugTests]) { try { System.Diagnostics.Debugger.Launch(); } #if !NETSTANDARD1_6 catch (SecurityException) { TopLevelWorkItem.MarkNotRunnable("System.Security.Permissions.UIPermission is not set to start the debugger."); return; } #endif //System.Diagnostics.Debugger.Launch() not implemented on mono catch (NotImplementedException) { TopLevelWorkItem.MarkNotRunnable("Debugger unavailable on this platform."); return; } } #if NET20 || NET35 || NET40 || NET45 if (Settings.ContainsKey(FrameworkPackageSettings.PauseBeforeRun) && (bool)Settings[FrameworkPackageSettings.PauseBeforeRun]) { PauseBeforeRun(); } #endif Context.Dispatcher.Start(TopLevelWorkItem); }
/// <summary> /// Initiate the test run. /// </summary> private void StartRun(ITestListener listener) { // Save Console.Out and Error for later restoration _savedOut = Console.Out; _savedErr = Console.Error; Console.SetOut(new TextCapture(Console.Out)); Console.SetError(new EventListenerTextWriter("Error", Console.Error)); // Queue and pump events, unless settings have SynchronousEvents == false if (!Settings.ContainsKey(FrameworkPackageSettings.SynchronousEvents) || !(bool)Settings[FrameworkPackageSettings.SynchronousEvents]) { QueuingEventListener queue = new QueuingEventListener(); Context.Listener = queue; _pump = new EventPump(listener, queue.Events); _pump.Start(); } if (!System.Diagnostics.Debugger.IsAttached && Settings.ContainsKey(FrameworkPackageSettings.DebugTests) && (bool)Settings[FrameworkPackageSettings.DebugTests]) { try { System.Diagnostics.Debugger.Launch(); } catch (SecurityException) { TopLevelWorkItem.MarkNotRunnable("System.Security.Permissions.UIPermission must be granted in order to launch the debugger."); return; } //System.Diagnostics.Debugger.Launch() not implemented on mono catch (NotImplementedException) { TopLevelWorkItem.MarkNotRunnable("This platform does not support launching the debugger."); return; } } #if NETFRAMEWORK if (Settings.ContainsKey(FrameworkPackageSettings.PauseBeforeRun) && (bool)Settings[FrameworkPackageSettings.PauseBeforeRun]) { PauseBeforeRun(); } #endif Context.Dispatcher.Start(TopLevelWorkItem); }