Salida del terminal

El generador de informes de pruebas de terminal es la implementación integrada del estado y los informes de progreso del terminal (consola). Forma parte del núcleo Microsoft. Testing.Platform (MTP) y no requiere ningún paquete NuGet adicional.

Modos de salida

Hay dos modos de salida disponibles:

  • Normal, la salida contiene el banner, notifica errores completos de pruebas, mensajes de advertencia y escribe el resumen de la ejecución. Salida con 1 prueba fallida y un resumen

  • Detailed, igual que Normal pero también notifica pruebas de Passed. Salida que incluye 1 prueba fallida, 1 prueba aprobada y un resumen

ANSI (Instituto Nacional Estadounidense de Estándares)

Internamente hay dos formateadores de salida diferentes que detectan automáticamente la capacidad del terminal para controlar los códigos de escape ANSI.

  • El formateador ANSI se usa cuando el terminal es capaz de representar los códigos de escape.
  • El formateador que no es ANSI se usa cuando el terminal no puede controlar los códigos de escape, cuando --no-ansi se usa o cuando se redirige la salida.

El valor predeterminado es detectar automáticamente las funcionalidades.

Progress

Se escribe un indicador de progreso en el terminal. El indicador de progreso muestra el número de pruebas superadas, las pruebas con errores y las pruebas omitidas, seguidas del nombre del ensamblado probado, su marco de destino y la arquitectura.

Una barra de progreso con 23 pruebas superadas, 0 pruebas con errores y 0 pruebas omitidas

La barra de progreso se escribe en función del modo seleccionado:

  • ANSI, la barra de progreso se anima, se pega a la parte inferior de la pantalla y se actualiza cada 500 ms. La barra de progreso se oculta una vez finalizada la ejecución de la prueba.
  • no ANSI, la barra de progreso se escribe en la pantalla cada 3 segundos. El progreso se refleja en el resultado.

Salida directa de la consola y actualización del indicador de progreso

Para animar la barra de progreso, el representador de progreso ANSI toma el control del cursor de terminal y vuelve a dibujar repetidamente la parte inferior de la pantalla. Cualquier texto que se escriba directamente en stdout o stderr fuera del flujo de captura del framework de pruebas puede sobrescribirse o eliminarse durante este redibujado. Por ejemplo, una llamada a Console.WriteLine desde código del ciclo de vida de nivel de ensamblado o de sesión (como un gancho Before(Assembly) o Before(TestSession)), o desde una extensión, podría parpadear brevemente y luego desaparecer cuando se actualice la barra de progreso.

Este comportamiento es distinto de la salida estándar y el error estándar capturados de cada prueba. La salida que genera una prueba mientras se ejecuta es capturada por el framework y se muestra según --show-stdout y --show-stderr, para que la barra de progreso no la sobrescriba.

Si el código debe escribir directamente en la consola y necesita que esa salida siga siendo visible, desactive el progreso (--progress off en MTP 2.3.0 y versiones posteriores, o --no-progress en versiones anteriores). Como alternativa, deshabilite ANSI (--ansi off en MTP 2.3.0 o --no-ansi en versiones anteriores) para usar la salida de progreso no ANSI, que anexa nuevas líneas en lugar de volver a dibujar en su lugar y no sobrescribe la salida directa anterior.

Options

Opción Versión de MTP Description
--no-progress Deshabilita la notificación del progreso en pantalla. Obsoleto en MTP 2.3.0, sustituido por --progress off.
--progress 2.3.0 Controla si se muestra el progreso. Los valores válidos son auto (valor predeterminado), on (también acepta , true, enable) y 1 (también acepta off, false, disable).0
--no-ansi Deshabilita la salida de caracteres de escape ANSI en pantalla.
--ansi 2.3.0 Controla si se emiten caracteres de escape ANSI. Los valores válidos son auto (valor predeterminado), on (también acepta , true, enable) y 1 (también acepta off, false, disable).0
--output Especifica el nivel de detalle de la salida al generar informes de pruebas. Los valores válidos son Normal y Detailed. El valor predeterminado es Normal.
--show-stdout 2.2.1 Determina cuándo mostrar la salida estándar capturada de una prueba. Los valores válidos son All, Failedy None. El valor predeterminado es All.
--show-stderr 2.2.1 Determina cuándo mostrar la salida de error capturada de una prueba. Los valores válidos son All, Failedy None. El valor predeterminado es All.

Nota:

Un guión (—) en la columna de la versión mtP marca las opciones principales que no están vinculadas a una versión específica porque están disponibles desde las versiones iniciales de la plataforma.

Nota:

A partir de MTP 2.3.0, cuando MTP detecta que se ejecuta dentro de un entorno de herramientas de LLM o IA, suprime el banner de inicio y cambia el valor predeterminado de --show-stdout y --show-stderr de All para Failed reducir el ruido.