Sortie du terminal

Le rapporteur de test de terminal est l’implémentation par défaut des rapports d’état et de progression au terminal (console). Il fait partie du cœur Microsoft. Testing.Platform (MTP) et ne nécessite aucun package NuGet supplémentaire.

Modes de sortie

Il existe deux modes de sortie disponibles :

  • Normal, la sortie contient la bannière, signale les échecs complets des tests, des messages d’avertissement et écrit le résumé de l’exécution. Sortie avec 1 test échoué et un résumé

  • Detailed, identique à Normal, mais il signale également des tests Passed. Résultat avec 1 échec et 1 test réussi, et un résumé

Institut national américain des normes (ANSI)

En interne, il existe 2 formateurs de sortie différents qui détectent automatiquement la fonctionnalité de terminal pour gérer les codes d’échappement ANSI.

  • Le formateur ANSI est utilisé lorsque le terminal est capable de restituer les codes d’échappement.
  • Le formateur non ANSI est utilisé lorsque le terminal ne peut pas gérer les codes d’échappement, lorsqu’il --no-ansi est utilisé ou lorsque la sortie est redirigée.

La valeur par défaut consiste à détecter automatiquement les fonctionnalités.

Progrès

Un indicateur de progression est écrit dans le terminal. L’indicateur de progression indique le nombre de tests réussis, les tests ayant échoué et les tests ignorés, suivis du nom de l’assembly testé, de son infrastructure cible et de son architecture.

Barre de progression avec 23 tests réussis, 0 tests ayant échoué et 0 tests ignorés

La barre de progression est écrite en fonction du mode sélectionné :

  • ANSI, la barre de progression est animée, collant au bas de l’écran et est actualisée toutes les 500 ms. La barre de progression se masque une fois l'exécution du test terminée.
  • non-ANSI, la barre de progression est inscrite à l’écran telle quelle toutes les 3 secondes. Les progrès se reflètent dans les résultats.

Sortie directe sur la console et réaffichage de la progression

Pour animer la barre de progression, le convertisseur de progression ANSI prend le contrôle du curseur de terminal et redessine à plusieurs reprises le bas de l’écran. Tout texte écrit directement dans stdout ou stderr en dehors du chemin de capture de l’infrastructure de test peut être remplacé ou supprimé pendant ce redessinage. Par exemple, un appel à Console.WriteLine depuis le code du cycle de vie au niveau de l’assembly ou de la session (comme un hook Before(Assembly) ou Before(TestSession)), ou depuis une extension, peut clignoter brièvement, puis disparaître lorsque la barre de progression se met à jour.

Ce comportement est distinct de la sortie standard capturée par test et de l’erreur standard. La sortie qu’un test génère pendant son exécution est capturée par le framework et affichée en fonction de --show-stdout et --show-stderr, afin que la barre de progression ne l’écrase pas.

Si votre code doit écrire directement dans la console et que vous avez besoin de cette sortie pour rester visible, désactivez la progression (--progress off dans MTP 2.3.0+, ou --no-progress dans les versions antérieures). Vous pouvez également désactiver ANSI (--ansi off dans MTP 2.3.0+, ou --no-ansi dans les versions antérieures) pour utiliser la sortie de progression non ANSI, qui ajoute de nouvelles lignes au lieu de redessiner en place et ne remplace pas la sortie directe précédente.

Options

Choix Version MTP Descriptif
--no-progress Désactive l’affichage de la progression à l’écran. Déconseillé dans MTP 2.3.0 en faveur de --progress off.
--progress 2.3.0 Contrôle si la progression est affichée. Les valeurs valides sont auto (valeur par défaut), on (accepte trueégalement, enable1, et off (accepte falseégalement , ). disable0
--no-ansi Désactive l’affichage des caractères d’échappement ANSI à l’écran.
--ansi 2.3.0 Contrôle si les caractères d’échappement ANSI sont émis. Les valeurs valides sont auto (valeur par défaut), on (accepte trueégalement, enable1, et off (accepte falseégalement , ). disable0
--output Spécifie le niveau de détail de la sortie lors de la génération des rapports de test. Les valeurs valides sont Normal et Detailed. La valeur par défaut est Normal.
--show-stdout 2.2.1 Détermine quand afficher la sortie standard capturée d’un test. Les valeurs valides sont All, Failedet None. La valeur par défaut est All.
--show-stderr 2.2.1 Détermine quand afficher la sortie d’erreur capturée d’un test. Les valeurs valides sont All, Failedet None. La valeur par défaut est All.

Note

Un tiret (—) dans la colonne de version MTP marque les options principales qui ne sont pas liées à une version spécifique, car elles ont été disponibles depuis les versions initiales de la plateforme.

Note

À partir de MTP 2.3.0, lorsque MTP détecte qu’il s’exécute dans un environnement d’outil LLM ou d’IA, il supprime la bannière de démarrage et modifie la valeur par défaut de --show-stdout et de --show-stderr de All à Failed afin de réduire le bruit.