Что именно делает 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();
}