이 기능을 사용하려면 Microsoft.Testing.Extensions.Retry NuGet 패키지가 필요합니다.
팁 (조언)
Microsoft.Testing.Platform.MSBuild(MSTest, NUnit 및 xUnit 실행기에서 전이적으로 포함)를 사용하는 경우 이 확장은 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에서 확인할 수 있습니다.
옵션
| Option | 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가 필요합니다. 버전 2.3.0부터 MTP에서 사용할 수 있습니다. |
임계값 옵션(--retry-failed-tests-max-percentage 및 --retry-failed-tests-max-tests)도 모두 설정해야 합니다 --retry-failed-tests .
MTP 2.4.0부터 다시 시도 요약은 Flaky 테스트에서 복구된 테스트 이름을 개별적으로 flaky 보고하고 retried 개수와 목록을 나열합니다. 오해의 소지가 있는 합계를 방지하기 위해 MTP는 첫 번째 시도 후 필터링된 재시도 시도에 대한 전체 제품군 요약을 인쇄하지 않습니다. 터미널 기자의 --show-flaky-tests 옵션을 사용하여 벗겨진 세부 정보를 표시하거나 숨깁니다.
다시 시도할 때마다 해당 보고서 아티팩트가 디렉터리 아래에 Retries 기록됩니다. JUnit의 경우 최상위 보고서는 원래 전체 제품군이 아닌 최종 필터링된 재시도 시도만 나타냅니다. CI에 완전한 적용이 필요한 경우의 이전 시도 보고서를 Retries 수집합니다. 이 레이아웃은 에 적용됩니다.--retry-failed-tests 대신 MSTest의 in-process [Retry] 는 대체된 시도를 테스트당 하나의 최종 JUnit 또는 TRX 결과로 축소합니다.
예시
최대 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 모드에서는 지원되지 않습니다.
.NET