Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta característica requiere el paquete NuGet Microsoft.Testing.Extensions.Retry .
Sugerencia
Cuando se usa Microsoft.Testing.Platform.MSBuild (incluido transitivamente por MSTest, NUnit y ejecutores xUnit), esta extensión se registra automáticamente al instalar su paquete NuGet, no se necesitan cambios de código. El registro manual de la sección siguiente solo es necesario si ha deshabilitado el punto de entrada generado automáticamente estableciendo <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.
Registro manual
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddRetryProvider();
Retry
Una extensión de .NET para resiliencia de prueba y manejo de fallos transitorios.
Esta extensión está pensada para pruebas de integración en las que la prueba depende en gran medida del estado del entorno y podría experimentar errores transitorios.
Nota:
El paquete se incluye con la licencia restrictiva Microsoft.Testing.Platform Tools. La licencia completa está disponible en https://www.nuget.org/packages/Microsoft.Testing.Extensions.Retry/1.0.0/License.
Options
| Opción | Description |
|---|---|
--retry-failed-tests |
Vuelve a ejecutar las pruebas con errores hasta que se superen o hasta que se alcance el número máximo de intentos. Necesario para activar la extensión. |
--retry-failed-tests-max-percentage |
Evita volver a ejecutar las pruebas cuando el porcentaje de casos de prueba con errores supera el umbral especificado. No se puede combinar con --retry-failed-tests-max-tests. Se requiere --retry-failed-tests. |
--retry-failed-tests-max-tests |
Evita volver a ejecutar las pruebas cuando el número de casos de prueba con errores supera el límite especificado. No se puede combinar con --retry-failed-tests-max-percentage. Se requiere --retry-failed-tests. |
--retry-failed-tests-delay |
Añade un retardo entre los reintentos. El retraso se expresa como un valor de tiempo, por ejemplo 200, , 500ms1s, 2.5m, 1ho 1d. La unidad predeterminada es milisegundos. Se requiere --retry-failed-tests. Disponible en MTP a partir de la versión 2.3.0. |
Ambas las opciones de umbral (--retry-failed-tests-max-percentage y --retry-failed-tests-max-tests) requieren asimismo que --retry-failed-tests se establezca.
En el caso de los autores del framework, esta extensión requiere UID de nodo de prueba estables y la gestión correcta de request-filter. Un reintento inicia un nuevo proceso de prueba y selecciona las pruebas con errores a través de --filter-uid. Si su marco omite TestNodeUidListFilter, puede volver a ejecutar las pruebas no seleccionadas en lugar de solo las que han fallado.
A partir de MTP 2.4.0, el resumen de reintentos notifica los recuentos de flaky y retried por separado y enumera los nombres de las pruebas recuperadas en Pruebas inestables. Para evitar totales engañosos, MTP no imprime un resumen de la suite completa para los reintentos filtrados después del primer intento. Use la opción --show-flaky-tests del reportero del terminal para mostrar u ocultar los detalles de las pruebas inestables.
Cada intento de reintento escribe sus artefactos de informe en el Retries directorio . Para JUnit, el informe de nivel superior representa solo el intento de reintento filtrado final, no el conjunto completo original; recopile los informes de intentos anteriores de Retries cuando la CI requiera cobertura completa. Este diseño se aplica a --retry-failed-tests. El [Retry] en proceso de MSTest contrae en su lugar los intentos sustituidos en un único resultado final de JUnit o TRX por prueba.
Examples
Reintentar pruebas fallidas hasta 3 veces.
dotnet run --project Contoso.MyTests -- --retry-failed-tests 3
Reintentar las pruebas fallidas hasta 2 veces, pero detenga el reintento si más del 50% de las pruebas fallan:
dotnet run --project Contoso.MyTests -- --retry-failed-tests 2 --retry-failed-tests-max-percentage 50
Vuelva a intentar las pruebas con errores hasta 3 veces, pero detenga el reintento si se produjo un error en más de 10 pruebas:
dotnet run --project Contoso.MyTests -- --retry-failed-tests 3 --retry-failed-tests-max-tests 10
Limitaciones
- No se admite en plataformas de explorador.
- No se admite en modo de recarga activa.