Modal Dialogs in nunit tests block test runner foreverNUnit vs Visual Studio 2008's Test Projects for Unit Testing?Calling GetGUIThreadInfo via P/InvokeNUnit Test Run OrderUnit test, NUnit or Visual studio?How to kill an alert window in Windows using C#?NUnit Unit tests not showing in Test Explorer with Test Adapter installedRunning nunit test with specific dataRunning NUnit tests from external test suite assembly in Visual Studio Test RunnerCreate NUnit test cases “on the fly”Parallel test process per assembly with NUnit 3 and TeamCity NUnit Runner
Do predators tend to have vertical slit pupils versus horizontal for prey animals?
Convert HTML color to OLE
Are illustrations in novels frowned upon?
How does the government purchase things?
Is it appropriate for a business to ask me for my credit report?
How much code would a codegolf golf if a codegolf could golf code?
What is a "click" in Greek or Latin?
How did Apollo 15's depressurization work?
Stuffing in the middle
Earliest evidence of objects intended for future archaeologists?
Church Booleans
Would it be illegal for Facebook to actively promote a political agenda?
Are there reliable, formulaic ways to form chords on the guitar?
How does the Saturn V Dynamic Test Stand work?
Use of vor in this sentence
Vacuum collapse -- why do strong metals implode but glass doesn't?
Alchemist potion on Undead
Chord with lyrics - What does it mean if there is an empty space instead of a Chord?
Why don't sharp and flat root note chords seem to be present in much guitar music?
Sous vide chicken without an internal temperature of 165
How to think about joining a company whose business I do not understand?
Is there such a thing as too inconvenient?
Count the frequency of integers in an array
How big would a Daddy Longlegs Spider need to be to kill an average Human?
Modal Dialogs in nunit tests block test runner forever
NUnit vs Visual Studio 2008's Test Projects for Unit Testing?Calling GetGUIThreadInfo via P/InvokeNUnit Test Run OrderUnit test, NUnit or Visual studio?How to kill an alert window in Windows using C#?NUnit Unit tests not showing in Test Explorer with Test Adapter installedRunning nunit test with specific dataRunning NUnit tests from external test suite assembly in Visual Studio Test RunnerCreate NUnit test cases “on the fly”Parallel test process per assembly with NUnit 3 and TeamCity NUnit Runner
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I want to unit test my UI classes (without actually showing it). I do this by invoking the constructor then calling various methods on it (as you would a normal class). At no point does the UI actually get shown by windows. However some of the UIs will throw up a modal dialog under some circumstances, I want to treat this as an error condition and fail the test.
I have tried the Timeout attribute but it isn't working (Test1), it just shows the dialog and hangs the test. I have an implementation (Test2) which works but it's a bit ugly.
Is there a cleaner way of treating modal windows as an error condition? / forcing a timeout even when modal dialogue is showing.
I am using Visual Studio test runner and nunit version 3
class Test
//does not work
[Test, Timeout(5000)]
public void Test1()
//blocks test and timeout is not respected
MessageBox.Show("It went wrong");
//works but is ugly
[Test]
public void Test2()
Task runUIStuff = new Task(()=>
MessageBox.Show("It went wrong");
);
runUIStuff.Start();
Task.WaitAny(Task.Delay(5000), runUIStuff);
if(!runUIStuff.IsCompleted)
Process.GetCurrentProcess().CloseMainWindow();
Assert.Fail("Test did not complete after timeout");
Update
Thanks for the pointer to Coded UI Tests. That looks like a good potential solution.
Since I did get something working in the mean time I thought I'd update it. This solution involves running the test in a STA thread with a custom timeout/shutdown implementation. It is an NUnitAttribute so can be used just like [Test]. It's pretty hacky and (presumabily) windows specific but it does seem to work reliably for my environment (where I don't actually want the UIs showing at all).
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using NUnit.Framework.Internal;
using NUnit.Framework.Internal.Commands;
namespace CatalogueLibraryTests.UserInterfaceTests
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
class UITimeoutAttribute : NUnitAttribute, IWrapTestMethod
private readonly int _timeout;
/// <summary>
/// Allows <paramref name="timeout"/> for the test to complete before calling <see cref="Process.CloseMainWindow"/> and failing the test
/// </summary>
/// <param name="timeout">timeout in milliseconds</param>
public UITimeoutAttribute(int timeout)
this._timeout = timeout;
/// <inheritdoc/>
public TestCommand Wrap(TestCommand command)
return new TimeoutCommand(command, this._timeout);
private class TimeoutCommand : DelegatingTestCommand
private int _timeout;
public TimeoutCommand(TestCommand innerCommand, int timeout): base(innerCommand)
_timeout = timeout;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, int wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
[DllImport("user32.dll")]
static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
private string YesNoDialog = "#32770";
private const UInt32 WM_CLOSE = 0x0010;
private const UInt32 WM_COMMAND = 0x0111;
private int IDNO = 7;
public override TestResult Execute(TestExecutionContext context)
TestResult result = null;
Exception threadException = null;
Thread thread = new Thread(() =>
try
result = innerCommand.Execute(context);
catch (Exception ex)
threadException = ex;
);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
try
while (thread.IsAlive && (_timeout > 0
catch (AggregateException ae)
throw ae.InnerException;
Usage
[Test, UITimeout(500)]
public void TestMessageBox()
MessageBox.Show("hey");
[Test, UITimeout(500)]
public void TestMessageBoxYesNo()
MessageBox.Show("hey","there",MessageBoxButtons.YesNo);
c# winforms nunit nunit-3.0
add a comment |
I want to unit test my UI classes (without actually showing it). I do this by invoking the constructor then calling various methods on it (as you would a normal class). At no point does the UI actually get shown by windows. However some of the UIs will throw up a modal dialog under some circumstances, I want to treat this as an error condition and fail the test.
I have tried the Timeout attribute but it isn't working (Test1), it just shows the dialog and hangs the test. I have an implementation (Test2) which works but it's a bit ugly.
Is there a cleaner way of treating modal windows as an error condition? / forcing a timeout even when modal dialogue is showing.
I am using Visual Studio test runner and nunit version 3
class Test
//does not work
[Test, Timeout(5000)]
public void Test1()
//blocks test and timeout is not respected
MessageBox.Show("It went wrong");
//works but is ugly
[Test]
public void Test2()
Task runUIStuff = new Task(()=>
MessageBox.Show("It went wrong");
);
runUIStuff.Start();
Task.WaitAny(Task.Delay(5000), runUIStuff);
if(!runUIStuff.IsCompleted)
Process.GetCurrentProcess().CloseMainWindow();
Assert.Fail("Test did not complete after timeout");
Update
Thanks for the pointer to Coded UI Tests. That looks like a good potential solution.
Since I did get something working in the mean time I thought I'd update it. This solution involves running the test in a STA thread with a custom timeout/shutdown implementation. It is an NUnitAttribute so can be used just like [Test]. It's pretty hacky and (presumabily) windows specific but it does seem to work reliably for my environment (where I don't actually want the UIs showing at all).
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using NUnit.Framework.Internal;
using NUnit.Framework.Internal.Commands;
namespace CatalogueLibraryTests.UserInterfaceTests
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
class UITimeoutAttribute : NUnitAttribute, IWrapTestMethod
private readonly int _timeout;
/// <summary>
/// Allows <paramref name="timeout"/> for the test to complete before calling <see cref="Process.CloseMainWindow"/> and failing the test
/// </summary>
/// <param name="timeout">timeout in milliseconds</param>
public UITimeoutAttribute(int timeout)
this._timeout = timeout;
/// <inheritdoc/>
public TestCommand Wrap(TestCommand command)
return new TimeoutCommand(command, this._timeout);
private class TimeoutCommand : DelegatingTestCommand
private int _timeout;
public TimeoutCommand(TestCommand innerCommand, int timeout): base(innerCommand)
_timeout = timeout;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, int wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
[DllImport("user32.dll")]
static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
private string YesNoDialog = "#32770";
private const UInt32 WM_CLOSE = 0x0010;
private const UInt32 WM_COMMAND = 0x0111;
private int IDNO = 7;
public override TestResult Execute(TestExecutionContext context)
TestResult result = null;
Exception threadException = null;
Thread thread = new Thread(() =>
try
result = innerCommand.Execute(context);
catch (Exception ex)
threadException = ex;
);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
try
while (thread.IsAlive && (_timeout > 0
catch (AggregateException ae)
throw ae.InnerException;
Usage
[Test, UITimeout(500)]
public void TestMessageBox()
MessageBox.Show("hey");
[Test, UITimeout(500)]
public void TestMessageBoxYesNo()
MessageBox.Show("hey","there",MessageBoxButtons.YesNo);
c# winforms nunit nunit-3.0
1
TestStack.White
– Fabio
Apr 1 at 10:02
add a comment |
I want to unit test my UI classes (without actually showing it). I do this by invoking the constructor then calling various methods on it (as you would a normal class). At no point does the UI actually get shown by windows. However some of the UIs will throw up a modal dialog under some circumstances, I want to treat this as an error condition and fail the test.
I have tried the Timeout attribute but it isn't working (Test1), it just shows the dialog and hangs the test. I have an implementation (Test2) which works but it's a bit ugly.
Is there a cleaner way of treating modal windows as an error condition? / forcing a timeout even when modal dialogue is showing.
I am using Visual Studio test runner and nunit version 3
class Test
//does not work
[Test, Timeout(5000)]
public void Test1()
//blocks test and timeout is not respected
MessageBox.Show("It went wrong");
//works but is ugly
[Test]
public void Test2()
Task runUIStuff = new Task(()=>
MessageBox.Show("It went wrong");
);
runUIStuff.Start();
Task.WaitAny(Task.Delay(5000), runUIStuff);
if(!runUIStuff.IsCompleted)
Process.GetCurrentProcess().CloseMainWindow();
Assert.Fail("Test did not complete after timeout");
Update
Thanks for the pointer to Coded UI Tests. That looks like a good potential solution.
Since I did get something working in the mean time I thought I'd update it. This solution involves running the test in a STA thread with a custom timeout/shutdown implementation. It is an NUnitAttribute so can be used just like [Test]. It's pretty hacky and (presumabily) windows specific but it does seem to work reliably for my environment (where I don't actually want the UIs showing at all).
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using NUnit.Framework.Internal;
using NUnit.Framework.Internal.Commands;
namespace CatalogueLibraryTests.UserInterfaceTests
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
class UITimeoutAttribute : NUnitAttribute, IWrapTestMethod
private readonly int _timeout;
/// <summary>
/// Allows <paramref name="timeout"/> for the test to complete before calling <see cref="Process.CloseMainWindow"/> and failing the test
/// </summary>
/// <param name="timeout">timeout in milliseconds</param>
public UITimeoutAttribute(int timeout)
this._timeout = timeout;
/// <inheritdoc/>
public TestCommand Wrap(TestCommand command)
return new TimeoutCommand(command, this._timeout);
private class TimeoutCommand : DelegatingTestCommand
private int _timeout;
public TimeoutCommand(TestCommand innerCommand, int timeout): base(innerCommand)
_timeout = timeout;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, int wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
[DllImport("user32.dll")]
static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
private string YesNoDialog = "#32770";
private const UInt32 WM_CLOSE = 0x0010;
private const UInt32 WM_COMMAND = 0x0111;
private int IDNO = 7;
public override TestResult Execute(TestExecutionContext context)
TestResult result = null;
Exception threadException = null;
Thread thread = new Thread(() =>
try
result = innerCommand.Execute(context);
catch (Exception ex)
threadException = ex;
);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
try
while (thread.IsAlive && (_timeout > 0
catch (AggregateException ae)
throw ae.InnerException;
Usage
[Test, UITimeout(500)]
public void TestMessageBox()
MessageBox.Show("hey");
[Test, UITimeout(500)]
public void TestMessageBoxYesNo()
MessageBox.Show("hey","there",MessageBoxButtons.YesNo);
c# winforms nunit nunit-3.0
I want to unit test my UI classes (without actually showing it). I do this by invoking the constructor then calling various methods on it (as you would a normal class). At no point does the UI actually get shown by windows. However some of the UIs will throw up a modal dialog under some circumstances, I want to treat this as an error condition and fail the test.
I have tried the Timeout attribute but it isn't working (Test1), it just shows the dialog and hangs the test. I have an implementation (Test2) which works but it's a bit ugly.
Is there a cleaner way of treating modal windows as an error condition? / forcing a timeout even when modal dialogue is showing.
I am using Visual Studio test runner and nunit version 3
class Test
//does not work
[Test, Timeout(5000)]
public void Test1()
//blocks test and timeout is not respected
MessageBox.Show("It went wrong");
//works but is ugly
[Test]
public void Test2()
Task runUIStuff = new Task(()=>
MessageBox.Show("It went wrong");
);
runUIStuff.Start();
Task.WaitAny(Task.Delay(5000), runUIStuff);
if(!runUIStuff.IsCompleted)
Process.GetCurrentProcess().CloseMainWindow();
Assert.Fail("Test did not complete after timeout");
Update
Thanks for the pointer to Coded UI Tests. That looks like a good potential solution.
Since I did get something working in the mean time I thought I'd update it. This solution involves running the test in a STA thread with a custom timeout/shutdown implementation. It is an NUnitAttribute so can be used just like [Test]. It's pretty hacky and (presumabily) windows specific but it does seem to work reliably for my environment (where I don't actually want the UIs showing at all).
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using NUnit.Framework;
using NUnit.Framework.Interfaces;
using NUnit.Framework.Internal;
using NUnit.Framework.Internal.Commands;
namespace CatalogueLibraryTests.UserInterfaceTests
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
class UITimeoutAttribute : NUnitAttribute, IWrapTestMethod
private readonly int _timeout;
/// <summary>
/// Allows <paramref name="timeout"/> for the test to complete before calling <see cref="Process.CloseMainWindow"/> and failing the test
/// </summary>
/// <param name="timeout">timeout in milliseconds</param>
public UITimeoutAttribute(int timeout)
this._timeout = timeout;
/// <inheritdoc/>
public TestCommand Wrap(TestCommand command)
return new TimeoutCommand(command, this._timeout);
private class TimeoutCommand : DelegatingTestCommand
private int _timeout;
public TimeoutCommand(TestCommand innerCommand, int timeout): base(innerCommand)
_timeout = timeout;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, int wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
[DllImport("user32.dll")]
static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
private string YesNoDialog = "#32770";
private const UInt32 WM_CLOSE = 0x0010;
private const UInt32 WM_COMMAND = 0x0111;
private int IDNO = 7;
public override TestResult Execute(TestExecutionContext context)
TestResult result = null;
Exception threadException = null;
Thread thread = new Thread(() =>
try
result = innerCommand.Execute(context);
catch (Exception ex)
threadException = ex;
);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
try
while (thread.IsAlive && (_timeout > 0
catch (AggregateException ae)
throw ae.InnerException;
Usage
[Test, UITimeout(500)]
public void TestMessageBox()
MessageBox.Show("hey");
[Test, UITimeout(500)]
public void TestMessageBoxYesNo()
MessageBox.Show("hey","there",MessageBoxButtons.YesNo);
c# winforms nunit nunit-3.0
c# winforms nunit nunit-3.0
edited Apr 1 at 14:19
Thomas N
asked Mar 27 at 14:50
Thomas NThomas N
3032 silver badges8 bronze badges
3032 silver badges8 bronze badges
1
TestStack.White
– Fabio
Apr 1 at 10:02
add a comment |
1
TestStack.White
– Fabio
Apr 1 at 10:02
1
1
TestStack.White
– Fabio
Apr 1 at 10:02
TestStack.White
– Fabio
Apr 1 at 10:02
add a comment |
1 Answer
1
active
oldest
votes
NUnit is really not equiped to test UI. Assuming from the flags you are working with Winforms in c# you should switch to CodedUI tests for this.
It is also advizable to try and take the code out of the form classes and bind to a view-model. The view and viewmodels will be testable and you code will be cleaner.
Thanks, that looks like a good solution. I have a model behind the UI and that is all tested, I really only want to make sure that forms get constructed/initialized correctly and get some full stack tests in. I'll see how far I get with my interim solution then port to CodedUI if needed later.
– Thomas N
Apr 1 at 9:30
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55380161%2fmodal-dialogs-in-nunit-tests-block-test-runner-forever%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
NUnit is really not equiped to test UI. Assuming from the flags you are working with Winforms in c# you should switch to CodedUI tests for this.
It is also advizable to try and take the code out of the form classes and bind to a view-model. The view and viewmodels will be testable and you code will be cleaner.
Thanks, that looks like a good solution. I have a model behind the UI and that is all tested, I really only want to make sure that forms get constructed/initialized correctly and get some full stack tests in. I'll see how far I get with my interim solution then port to CodedUI if needed later.
– Thomas N
Apr 1 at 9:30
add a comment |
NUnit is really not equiped to test UI. Assuming from the flags you are working with Winforms in c# you should switch to CodedUI tests for this.
It is also advizable to try and take the code out of the form classes and bind to a view-model. The view and viewmodels will be testable and you code will be cleaner.
Thanks, that looks like a good solution. I have a model behind the UI and that is all tested, I really only want to make sure that forms get constructed/initialized correctly and get some full stack tests in. I'll see how far I get with my interim solution then port to CodedUI if needed later.
– Thomas N
Apr 1 at 9:30
add a comment |
NUnit is really not equiped to test UI. Assuming from the flags you are working with Winforms in c# you should switch to CodedUI tests for this.
It is also advizable to try and take the code out of the form classes and bind to a view-model. The view and viewmodels will be testable and you code will be cleaner.
NUnit is really not equiped to test UI. Assuming from the flags you are working with Winforms in c# you should switch to CodedUI tests for this.
It is also advizable to try and take the code out of the form classes and bind to a view-model. The view and viewmodels will be testable and you code will be cleaner.
answered Apr 1 at 8:56
SteveSteve
2391 silver badge10 bronze badges
2391 silver badge10 bronze badges
Thanks, that looks like a good solution. I have a model behind the UI and that is all tested, I really only want to make sure that forms get constructed/initialized correctly and get some full stack tests in. I'll see how far I get with my interim solution then port to CodedUI if needed later.
– Thomas N
Apr 1 at 9:30
add a comment |
Thanks, that looks like a good solution. I have a model behind the UI and that is all tested, I really only want to make sure that forms get constructed/initialized correctly and get some full stack tests in. I'll see how far I get with my interim solution then port to CodedUI if needed later.
– Thomas N
Apr 1 at 9:30
Thanks, that looks like a good solution. I have a model behind the UI and that is all tested, I really only want to make sure that forms get constructed/initialized correctly and get some full stack tests in. I'll see how far I get with my interim solution then port to CodedUI if needed later.
– Thomas N
Apr 1 at 9:30
Thanks, that looks like a good solution. I have a model behind the UI and that is all tested, I really only want to make sure that forms get constructed/initialized correctly and get some full stack tests in. I'll see how far I get with my interim solution then port to CodedUI if needed later.
– Thomas N
Apr 1 at 9:30
add a comment |
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55380161%2fmodal-dialogs-in-nunit-tests-block-test-runner-forever%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
TestStack.White
– Fabio
Apr 1 at 10:02