Reporters
Vitest fournit plusieurs reporters intégrés pour afficher le résultat des tests dans différents formats, ainsi que la possibilité d’utiliser des reporters personnalisés. Vous pouvez sélectionner différents reporters soit en utilisant l’option de ligne de commande --reporter
, soit en incluant une propriété reporters
dans votre fichier de configuration. Si aucun reporter n’est spécifié, Vitest utilisera le reporter default
comme décrit ci-dessous.
Utilisation des reporters via la ligne de commande :
Utilisation des reporters via vitest.config.ts
:
Certains reporters peuvent être personnalisés en leur passant des options supplémentaires. Les options spécifiques aux reporters sont décrites dans les sections ci-dessous.
Sortie du Reporter
Par défaut, les reporters de Vitest imprimeront leur sortie dans le terminal. Lors de l’utilisation des reporters json
, html
ou junit
, vous pouvez écrire la sortie de vos tests dans un fichier en incluant une option de configuration outputFile
option de configuration soit dans votre fichier de configuration Vite, soit via la CLI.
Combinaison des Reporters
Vous pouvez utiliser plusieurs reporters simultanément pour imprimer vos résultats de test dans différents formats. Par exemple :
L’exemple ci-dessus imprimera à la fois les résultats des tests dans le terminal dans le style par défaut et les écrira en tant que JSON dans le fichier de sortie désigné.
Lors de l’utilisation de plusieurs reporters, il est également possible de désigner plusieurs fichiers de sortie, comme suit :
Cet exemple écrira des rapports JSON et XML distincts tout en imprimant un rapport détaillé dans le terminal.
Reporters Intégrés
Reporter par Défaut
Par défaut (c’est-à-dire si aucun reporter n’est spécifié), Vitest affichera les résultats pour chaque suite de tests de manière hiérarchique au fur et à mesure de leur exécution, puis s’effondrera après qu’une suite réussisse. Lorsque tous les tests ont terminé de s’exécuter, la sortie finale du terminal affichera un résumé des résultats et des détails sur les tests échoués.
Exemple de sortie pour des tests en cours :
Sortie finale après la fin des tests :
Reporter de Base
Le reporter basic
affiche les fichiers de test qui ont été exécutés et un résumé des résultats après que l’ensemble de la suite a fini de s’exécuter. Les tests individuels ne sont pas inclus dans le rapport à moins qu’ils échouent.
Exemple de sortie utilisant le reporter de base :
Reporter Détail
Suit la même structure hiérarchique que le reporter default
, mais ne réduit pas les sous-arbres pour les suites de tests réussies. La sortie finale du terminal affiche tous les tests qui ont été exécutés, y compris ceux qui ont réussi.
Exemple de sortie finale du terminal pour une suite de tests réussie :
Reporter Point
Imprime un point unique pour chaque test terminé afin de fournir une sortie minimale tout en montrant tous les tests qui ont été exécutés. Les détails ne sont fournis que pour les tests échoués, accompagnés d’un résumé du reporter basic
pour la suite.
Exemple de sortie terminal pour une suite de tests réussie :
Reporter JUnit
Produit un rapport des résultats des tests au format XML JUnit. Peut être soit imprimé dans le terminal, soit écrit dans un fichier XML en utilisant l’option de configuration outputFile
.
Exemple d’un rapport XML JUnit :
Le XML produit contient des tags imbriqués testsuites
et testcase
. Vous pouvez utiliser les variables d’environnement VITEST_JUNIT_SUITE_NAME
et VITEST_JUNIT_CLASSNAME
pour configurer leurs attributs name
et classname
, respectivement. Ceux-ci peuvent également être personnalisés via les options reporters :
Reporter JSON
Produits un rapport des résultats des tests au format JSON. Peut être soit imprimé dans le terminal, soit écrit dans un fichier en utilisant l’option de configuration outputFile
.
Exemple d’un rapport JSON :
Reporter HTML
Génère un fichier HTML pour visualiser les résultats des tests via une interface utilisateur interactive GUI. Après que le fichier a été généré, Vitest maintiendra un serveur de développement local en cours d’exécution et fournira un lien pour visualiser le rapport dans un navigateur.
Le fichier de sortie peut être spécifié en utilisant l’option de configuration outputFile
. Si aucune option outputFile
n’est fournie, un nouveau fichier HTML sera créé.
Reporter TAP
Produit un rapport suivant le Test Anything Protocol (TAP).
Exemple d’un rapport TAP :
Reporter TAP Plat
Produit un rapport TAP plat. Comme le reporter tap
, les résultats des tests sont formatés selon les normes TAP, mais les suites de tests sont formatées sous forme de liste plate plutôt qu’une hiérarchie imbriquée.
Exemple d’un rapport TAP plat :
Reporter de Processus Suspendu
Affiche une liste de processus suspendus, s’il y en a qui empêchent Vitest de se fermer en toute sécurité. Le reporter hanging-process
ne montre pas lui-même les résultats des tests, mais peut être utilisé en conjonction avec un autre reporter pour surveiller les processus pendant que les tests s’exécutent. Utiliser ce reporter peut être gourmand en ressources, donc il doit généralement être réservé à des fins de débogage dans des situations où Vitest ne peut pas constamment quitter le processus.
Reporter GitHub Actions
Produit des commandes de workflow pour fournir des annotations pour les échecs de tests. Ce reporter est activé automatiquement avec un reporter default
lorsque process.env.GITHUB_ACTIONS === 'true'
.
Si vous configurez des reporters non par défaut, vous devez explicitement ajouter github-actions
.
Reporter Blob
Stocke les résultats des tests sur la machine afin qu’ils puissent être fusionnés ultérieurement en utilisant la commande --merge-reports
.
Par défaut, stocke tous les résultats dans le dossier .vitest-reports
, mais peut être remplacé par des drapeaux --outputFile
ou --outputFile.blob
.
Nous recommandons d’utiliser ce reporter si vous exécutez Vitest sur différentes machines avec le drapeau --shard
.
Tous les rapports blob peuvent être fusionnés dans n’importe quel rapport en utilisant la commande --merge-reports
à la fin de votre pipeline CI :
Reporters Personnalisés
Vous pouvez utiliser des reporters personnalisés tiers installés depuis NPM en spécifiant leur nom de package dans l’option des reporters :
De plus, vous pouvez définir vos propres reporters personnalisés et les utiliser en spécifiant leur chemin de fichier :
Les reporters personnalisés doivent implémenter l’interface Reporter.