NUnit-х [Retry]
атрибут только число повторных попыток, когда тест не пройден, а не ошибок. Это означает, что AssertionExceptions
вызовет повторную попытку, однако другие исключения не будут.
Вы не говорите, как вы делаете свои таймауты - вы используете для этого атрибут NUnit [Timeout]
? Это должно вызвать повтор. Если вы тайм-аут вызывает другой вид исключения, вам, возможно, придется ожидать этого, и вместо этого «утверждать, что этого не происходит». Вы можете сделать это, утверждая, что соответствующая строка не вызывает никакого исключения, например.
string toFetch;
Assert.That(() => { toFetch = FetchMyString(); }, Throws.Nothing);
Если вы хотите, чтобы вместо того, чтобы сделать что-то во всем мире, вы можете вместо этого хотите реализовать пользовательский атрибут, который RETRIES на ResultState.Error, а также ResultState.Failure. Посмотрите, как реализован текущий RetryAttribute, который может дать вам представление о том, с чего начать.
Retry Attribute Docs
10x @ Крис У меня есть некоторые другие формы тайм-аута, который (возможно) вместо того, чтобы бросать исключение. как бы я обернул его с помощью предложенного утверждения? мне нужно сделать это в каждом случае, я думаю, что тайм-аут появится? любое общее решение? –
@YanivEliav - Я обновил свой ответ с дополнительной информацией и некоторыми исправлениями. знак равно – Chris