Я начинаю изучать использование белого тестирования пользовательского интерфейса с помощью XUNIT. < /p>
Основная структура для моих тестов - < /p>
Открыть приложение < /li>
Проверьте что -то < /li>
< /br />
< /li>
< /br />
/> Это работает очень хорошо, когда тестируется. Однако, когда тест не удается, приложение не закрыто. Если несколько тестов терпят неудачу, это приводит к множеству открытых экземпляров моего приложения. Как метод "runonassertfail"? < /P>
[Fact]
public void MainWindowCreated()
{
bool testFailed = false;
Application application = Application.Launch(@"C:\Program\Program.exe");
Window mainWindow = GetWindow(application, "MainWidndow", 500);
try
{
testFailed = true;
mainWindow.Should().NotBe(null, ". Main Widndow could not be found");
testFailed = false;
}
finally
{
if (testFailed)
{
application.Close();
}
}
/*
* Rest of test case
*/
application.Close();
}
private static Window GetWindow(Application application,
string windowName,
int timeoutAfterMilliseconds)
{
Window window = null;
try
{
window = Retry.For(
() => application.GetWindows().First(
windowX => windowX.Title.Trim().Equals(windowName.Trim())),
TimeSpan.FromMilliseconds(timeoutAfterMilliseconds));
}
catch (InvalidOperationException)
{
}
return window;
}
< /code>
требует, чтобы XUNIT, белый и беглый>
Подробнее здесь: https://stackoverflow.com/questions/556 ... re-cleanup