diff options
author | Mike Krüger <mikkrg@microsoft.com> | 2018-09-27 16:37:06 +0300 |
---|---|---|
committer | Mike Krüger <mikkrg@microsoft.com> | 2018-09-27 16:37:06 +0300 |
commit | db49334169135b8b9ef15e461ca83c0cc0d87075 (patch) | |
tree | b55edc2e5a8c5479e4626b56785bd22ac0e20344 | |
parent | 3ccace79ef3fd212b0c5a5bfb027dbeb4cbf4668 (diff) |
Fixes issue #6014 [Regression] Unit-tests execution
The multiple application output window got introduced by
65c5f17f86fc77f8add6c6090aa526c2cb2a6009 that introduced that an in
progress output window can't be re used. Ending the progress on
dispose as well fixes that issue for unit tests.
4 files changed, 16 insertions, 5 deletions
diff --git a/main/src/addins/MonoDevelop.UnitTesting/Gui/TestPad.cs b/main/src/addins/MonoDevelop.UnitTesting/Gui/TestPad.cs index 64d2f18591..235d0213f1 100644 --- a/main/src/addins/MonoDevelop.UnitTesting/Gui/TestPad.cs +++ b/main/src/addins/MonoDevelop.UnitTesting/Gui/TestPad.cs @@ -481,10 +481,15 @@ namespace MonoDevelop.UnitTesting void OnStopClicked (object sender, EventArgs args) { + StopRunningTests (); + } + + void StopRunningTests () + {
if (runningTestOperation != null) runningTestOperation.Cancel (); } - + UnitTest GetSelectedTest () { ITreeNavigator nav = TreeView.GetSelectedNode (); @@ -538,6 +543,7 @@ namespace MonoDevelop.UnitTesting if (bringToFront) IdeApp.Workbench.GetPad<TestPad> ().BringToFront (); + StopRunningTests (); runningTestOperation = UnitTestService.RunTests (tests, context); runningTestOperation.Task.ContinueWith (t => OnTestSessionCompleted (), TaskScheduler.FromCurrentSynchronizationContext ()); return runningTestOperation; diff --git a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs index f846b414ed..4b845b9298 100644 --- a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs +++ b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestService.cs @@ -129,9 +129,8 @@ namespace MonoDevelop.UnitTesting if (t.OwnerObject is IBuildTarget bt) build_targets.Add (bt); } - var res = await IdeApp.ProjectOperations.CheckAndBuildForExecute ( - build_targets, IdeApp.Workspace.ActiveConfiguration, IdeApp.Preferences.BuildBeforeRunningTests, + build_targets, IdeApp.Workspace.ActiveConfiguration, buildWithoutPrompting: !IdeApp.Preferences.BuildBeforeRunningTests, false, null, cs.Token); if (!res) diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs index b611609679..f3354a65ba 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/LogView.cs @@ -961,11 +961,13 @@ namespace MonoDevelop.Ide.Gui.Components { base.Dispose (); console.Dispose (); + Disposed?.Invoke (this, EventArgs.Empty); } + internal event EventHandler Disposed; internal event EventHandler Completed; - class LogViewProgressConsole: OperationConsole + class LogViewProgressConsole : OperationConsole { LogViewProgressMonitor monitor; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/DefaultMonitorPad.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/DefaultMonitorPad.cs index 0261bb6ad7..2410934208 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/DefaultMonitorPad.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/DefaultMonitorPad.cs @@ -165,7 +165,11 @@ namespace MonoDevelop.Ide.Gui.Pads Window.IsWorking = true; buttonStop.Sensitive = true; }); - + monitor.Disposed += delegate { + if (progressStarted) + EndProgress (); + }; + monitor.Completed += delegate { EndProgress (); }; |