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;








1















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);










share|improve this question





















  • 1





    TestStack.White

    – Fabio
    Apr 1 at 10:02

















1















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);










share|improve this question





















  • 1





    TestStack.White

    – Fabio
    Apr 1 at 10:02













1












1








1


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);










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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












  • 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












1 Answer
1






active

oldest

votes


















2














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.






share|improve this answer

























  • 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










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
);



);













draft saved

draft discarded


















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









2














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.






share|improve this answer

























  • 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















2














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.






share|improve this answer

























  • 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













2












2








2







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.






share|improve this answer













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.







share|improve this answer












share|improve this answer



share|improve this answer










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

















  • 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








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.



















draft saved

draft discarded
















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

은진 송씨 목차 역사 본관 분파 인물 조선 왕실과의 인척 관계 집성촌 항렬자 인구 같이 보기 각주 둘러보기 메뉴은진 송씨세종실록 149권, 지리지 충청도 공주목 은진현