что будет делать NUnit внутренне, если тайм-аут теста нарушен?
что делает NUnit, когда обнаруживает таймаут? Раньше я думал, что он прервет тест, выдав исключение TimeoutException, но этот тест доказывает обратное:
[Test, Timeout(100), ExpectedException(typeof(TimeoutException))]
public static void RaisingExpectedTimeoutException()
{
Thread.Sleep(500);
}
к сожалению, консоль nunit сообщает только о нарушении тайм-аута, но не о том, как тест был прерван им. Есть ли кто-нибудь, кто знает больше о том, как это будет работать? и почему вышеупомянутый тест не поднял ожидаемое исключение TimeoutException? (хотя это тип исключений .NET, я решил, что NUnit использовал это исключение для нарушений тайм-аута).
PS: этот метод испытаний также не проходит:
[Test, Timeout(100), ExpectedException(typeof(ThreadAbortException))]
public static void RaisingExpectedThreadAbortException()
{
Thread.Sleep(500);
}
и этот метод теста успешен («никто не ожидает испанской инквизиции!»):
[Test, ExpectedException(typeof(ThreadAbortException))]
public static void ThrowingExpectedThreadAbortException()
{
Thread.CurrentThread.Abort();
}