Retry

Для этой функции требуется пакет NuGet Microsoft.Testing.Extensions.Retry .

Подсказка

При использовании Microsoft.Testing.Platform.MSBuild (включается транзитивно msTest, NUnit и xUnit runners), это расширение регистрируется автоматически при установке пакета NuGet — изменения кода не требуются. Регистрация вручную в следующем разделе требуется только в том случае, если вы отключили автоматическую точку входа, задав параметр <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Регистрация вручную

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddRetryProvider();

Retry

Расширение .NET для тестирования устойчивости и обработки преходящих ошибок.

Это расширение предназначено для тестов интеграции, в которых тест сильно зависит от состояния среды и может столкнуться с временными сбоями.

Замечание

Пакет поставляется с ограничивающей лицензией Microsoft.Testing.Platform Tools. Полная лицензия доступна на https://www.nuget.org/packages/Microsoft.Testing.Extensions.Retry/1.0.0/License.

Options

Опция Description
--retry-failed-tests Повторно запускает все неудачные тесты до тех пор, пока они не будут пройдены или пока не будет достигнуто максимальное количество попыток. Требуется для активации расширения.
--retry-failed-tests-max-percentage Избегает повторного запуска тестов, если процент неудачных тестовых случаев пересекает указанное пороговое значение. Не удается объединить с --retry-failed-tests-max-tests. Требует использования --retry-failed-tests.
--retry-failed-tests-max-tests Избегает повторного запуска тестов, когда число неудачных тестовых случаев пересекает указанное ограничение. Не удается объединить с --retry-failed-tests-max-percentage. Требует использования --retry-failed-tests.
--retry-failed-tests-delay Добавляет задержку между повторными попытками. Задержка выражается как значение времени, например 200, 500ms, 1s, , 2.5m1hили 1d. Единица по умолчанию — миллисекунда. Требует использования --retry-failed-tests. Доступно в MTP начиная с версии 2.3.0.

Для обоих параметров порогового значения (--retry-failed-tests-max-percentage и --retry-failed-tests-max-tests) также требуется --retry-failed-tests задать.

Примеры

Повторите неудачные тесты до 3 раз:

dotnet run --project Contoso.MyTests -- --retry-failed-tests 3

Повторите неудачные тесты до 2 раз, но остановите повторные попытки, если более 50% тестов завершились ошибкой:

dotnet run --project Contoso.MyTests -- --retry-failed-tests 2 --retry-failed-tests-max-percentage 50

Повторите неудачные тесты до 3 раз, но остановите повторную попытку, если более 10 тестов завершились ошибкой:

dotnet run --project Contoso.MyTests -- --retry-failed-tests 3 --retry-failed-tests-max-tests 10

Ограничения

  • Не поддерживается на платформах браузера.
  • Не поддерживается в режиме hot reload.