Skip to content
Vitest 1
Main Navigation GuideAPIConfigurationAvancé
1.6.1
0.34.6

Français

English
简体中文
繁體中文
Español
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Français

English
简体中文
繁體中文
Español
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Apparence

Sidebar Navigation

Guide

Pourquoi Vitest

Premiers pas

Fonctionnalités

Espace de travail

Interface de ligne de commande

Filtrage des tests

Reporters

Couverture

Instantané (Snapshot)

Simulations

Tests de Type

Interface utilisateur de Vitest

Mode Navigateur

Tests intégrés au code source

Contexte de Test

Environnement de test

Extension des vérificateurs (Matchers)

Intégrations pour IDE

Débogage

Comparaison avec d'autres outils de test

Guide de migration

Erreurs courantes

Améliorer les performances

API

Référence de l'API de Test

Fonctions Mock

Vi

expect

expectTypeOf

assert

assertType

Configuration

Configuration du fichier Vitest

Configuration de Vitest

Sur cette page

Reporters ​

Vitest propose plusieurs reporters intégrés pour afficher les résultats des tests dans différents formats. Il est également possible d'utiliser des reporters personnalisés. Vous pouvez sélectionner les reporters souhaités en utilisant l'option de ligne de commande --reporter, ou en ajoutant une propriété reporters dans votre fichier de configuration. Si aucun reporter n'est spécifié, Vitest utilisera le reporter default, décrit ci-dessous.

Utilisation en ligne de commande :

bash
npx vitest --reporter=verbose

Utilisation des reporters via vitest.config.ts :

ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    reporters: ['verbose'],
  },
});

Certains reporters peuvent être personnalisés en leur passant des options supplémentaires. Les options spécifiques à chaque reporter sont décrites dans les sections ci-dessous.

TIP

Depuis Vitest v1.3.0

ts
export default defineConfig({
  test: {
    reporters: ['default', ['junit', { suiteName: 'UI tests' }]],
  },
});

Sortie des reporters ​

Par défaut, les reporters de Vitest affichent leur sortie dans le terminal. Lorsque vous utilisez les reporters json, html ou junit, vous pouvez également enregistrer la sortie de vos tests dans un fichier en ajoutant une option outputFile de configuration soit dans votre fichier de configuration Vite, soit via l'interface de ligne de commande (CLI).

bash
npx vitest --reporter=json --outputFile=./test-output.json
ts
export default defineConfig({
  test: {
    reporters: ['json'],
    outputFile: './test-output.json',
  },
});

Combinaison de reporters ​

Vous pouvez utiliser plusieurs reporters simultanément pour afficher les résultats de vos tests dans différents formats. Par exemple :

bash
npx vitest --reporter=json --reporter=default
ts
export default defineConfig({
  test: {
    reporters: ['json', 'default'],
    outputFile: './test-output.json',
  },
});

L'exemple ci-dessus affichera les résultats des tests dans le terminal avec le style par défaut et les enregistrera au format JSON dans le fichier de sortie indiqué.

Lorsque vous utilisez plusieurs reporters, vous pouvez également spécifier différents fichiers de sortie pour chacun, comme suit :

ts
export default defineConfig({
  reporters: ['junit', 'json', 'verbose'],
  outputFile: {
    junit: './junit-report.xml',
    json: './json-report.json',
  },
});

Cet exemple écrira des rapports JSON et XML distincts et affichera 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 affiche les résultats de chaque suite de tests de manière hiérarchique pendant leur exécution, puis les réduit une fois qu'une suite a réussi. Une fois tous les tests exécutés, la sortie finale du terminal affiche un résumé des résultats et les détails des tests ayant échoué.

Exemple de sortie pendant l'exécution des tests :

bash
✓ __tests__/file1.test.ts (2) 725ms
✓ __tests__/file2.test.ts (5) 746ms
  ✓ second test file (2) 746ms
    ✓ 1 + 1 should equal 2
    ✓ 2 - 1 should equal 1

Sortie finale une fois les tests terminés :

bash
✓ __tests__/file1.test.ts (2) 725ms
✓ __tests__/file2.test.ts (2) 746ms

 Test Files  2 passed (2)
      Tests  4 passed (4)
   Start at  12:34:32
   Duration  1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)

Reporter basique ​

Le reporter basic affiche les fichiers de test exécutés et un résumé des résultats une fois l'exécution de la suite terminée. Les tests individuels ne sont pas inclus dans le rapport, sauf s'ils échouent.

bash
npx vitest --reporter=basic
ts
export default defineConfig({
  test: {
    reporters: ['basic'],
  },
});

Exemple de sortie utilisant le reporter basique :

bash
✓ __tests__/file1.test.ts (2) 725ms
✓ __tests__/file2.test.ts (2) 746ms

 Test Files  2 passed (2)
      Tests  4 passed (4)
   Start at  12:34:32
   Duration  1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)

Reporter détaillé ​

Suit la même structure hiérarchique que le reporter default, mais ne réduit pas les sous-arbres des suites de tests réussies. La sortie finale du terminal affiche tous les tests exécutés, y compris ceux qui ont réussi.

bash
npx vitest --reporter=verbose
ts
export default defineConfig({
  test: {
    reporters: ['verbose'],
  },
});

Exemple de sortie finale du terminal pour une suite de tests réussie :

bash
✓ __tests__/file1.test.ts (2) 725ms
   ✓ first test file (2) 725ms
     ✓ 2 + 2 should equal 4
     ✓ 4 - 2 should equal 2
✓ __tests__/file2.test.ts (2) 746ms
  ✓ second test file (2) 746ms
    ✓ 1 + 1 should equal 2
    ✓ 2 - 1 should equal 1

 Test Files  2 passed (2)
      Tests  4 passed (4)
   Start at  12:34:32
   Duration  1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)

Reporter par points ​

Affiche un point pour chaque test terminé afin de fournir une sortie minimale tout en affichant tous les tests exécutés. Les détails ne sont fournis que pour les tests ayant échoué, ainsi que le résumé du reporter basic pour la suite de tests.

bash
npx vitest --reporter=dot
ts
export default defineConfig({
  test: {
    reporters: ['dot'],
  },
});

Exemple de sortie du terminal pour une suite de tests réussie :

bash
....

 Test Files  2 passed (2)
      Tests  4 passed (4)
   Start at  12:34:32
   Duration  1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)

Reporter JUnit ​

Génère un rapport des résultats des tests au format XML JUnit, qui peut être affiché dans le terminal ou enregistré dans un fichier XML à l'aide de l'option de configuration outputFile.

bash
npx vitest --reporter=junit
ts
export default defineConfig({
  test: {
    reporters: ['junit'],
  },
});

Exemple de rapport JUnit XML :

xml
<?xml version="1.0" encoding="UTF-8" ?>
<testsuites name="vitest tests" tests="2" failures="1" errors="0" time="0.503">
    <testsuite name="__tests__/test-file-1.test.ts" timestamp="2023-10-19T17:41:58.580Z" hostname="My-Computer.local" tests="2" failures="1" errors="0" skipped="0" time="0.013">
        <testcase classname="__tests__/test-file-1.test.ts" name="first test file &gt; 2 + 2 should equal 4" time="0.01">
            <failure message="expected 5 to be 4 // Object.is equality" type="AssertionError">
AssertionError: expected 5 to be 4 // Object.is equality
 ❯ __tests__/test-file-1.test.ts:20:28
            </failure>
        </testcase>
        <testcase classname="__tests__/test-file-1.test.ts" name="first test file &gt; 4 - 2 should equal 2" time="0">
        </testcase>
    </testsuite>
</testsuites>

Le XML généré contient des balises testsuites et testcase imbriquées. Vous pouvez utiliser les variables d'environnement VITEST_JUNIT_SUITE_NAME et VITEST_JUNIT_CLASSNAME pour configurer leurs attributs name et classname, respectivement. Ces attributs peuvent également être personnalisés via les options du reporter :

ts
export default defineConfig({
  test: {
    reporters: [
      [
        'junit',
        { suiteName: 'custom suite name', classname: 'custom-classname' },
      ],
    ],
  },
});

Reporter JSON ​

Génère un rapport des résultats des tests au format JSON, qui peut être affiché dans le terminal ou enregistré dans un fichier à l'aide de l'option de configuration outputFile.

bash
npx vitest --reporter=json
ts
export default defineConfig({
  test: {
    reporters: ['json'],
  },
});

Exemple de rapport JSON :

json
{
  "numTotalTestSuites": 1,
  "numPassedTestSuites": 0,
  "numFailedTestSuites": 1,
  "numPendingTestSuites": 0,
  "numTotalTests": 1,
  "numPassedTests": 0,
  "numFailedTests": 1,
  "numPendingTests": 0,
  "numTodoTests": 0,
  "startTime": 1697737019307,
  "success": false,
  "testResults": [
    {
      "assertionResults": [
        {
          "ancestorTitles": ["", "first test file"],
          "fullName": " first test file 2 + 2 should equal 4",
          "status": "failed",
          "title": "2 + 2 should equal 4",
          "duration": 9,
          "failureMessages": ["expected 5 to be 4 // Object.is equality"],
          "location": {
            "line": 20,
            "column": 28
          }
        }
      ],
      "startTime": 1697737019787,
      "endTime": 1697737019797,
      "status": "failed",
      "message": "",
      "name": "/root-directory/__tests__/test-file-1.test.ts"
    }
  ]
}

Reporter HTML ​

Génère un fichier HTML pour afficher les résultats des tests via une interface graphique (GUI) interactive GUI. Une fois le fichier généré, Vitest maintient un serveur de développement local en cours d'exécution et fournit un lien permettant d'afficher le rapport dans un navigateur.

Vous pouvez spécifier le fichier de sortie à l'aide de l'option de configuration outputFile. Si aucune option outputFile n'est fournie, un nouveau fichier HTML est créé.

bash
npx vitest --reporter=html
ts
export default defineConfig({
  test: {
    reporters: ['html'],
  },
});

TIP

Ce reporter nécessite l'installation du package @vitest/ui.

Reporter TAP ​

Génère un rapport suivant le protocole Test Anything Protocol (TAP).

bash
npx vitest --reporter=tap
ts
export default defineConfig({
  test: {
    reporters: ['tap'],
  },
});

Exemple de rapport TAP :

bash
TAP version 13
1..1
not ok 1 - __tests__/test-file-1.test.ts # time=14.00ms {
    1..1
    not ok 1 - first test file # time=13.00ms {
        1..2
        not ok 1 - 2 + 2 should equal 4 # time=11.00ms
            ---
            error:
                name: "AssertionError"
                message: "expected 5 to be 4 // Object.is equality"
            at: "/root-directory/__tests__/test-file-1.test.ts:20:28"
            actual: "5"
            expected: "4"
            ...
        ok 2 - 4 - 2 should equal 2 # time=1.00ms
    }
}

Reporter TAP Flat ​

Génère un rapport TAP flat. Comme le reporter tap, les résultats des tests sont formatés conformément aux normes TAP, mais les suites de tests sont formatées sous forme de liste plate plutôt que de hiérarchie imbriquée.

bash
npx vitest --reporter=tap-flat
ts
export default defineConfig({
  test: {
    reporters: ['tap-flat'],
  },
});

Exemple de rapport TAP flat :

bash
TAP version 13
1..2
not ok 1 - __tests__/test-file-1.test.ts > first test file > 2 + 2 should equal 4 # time=11.00ms
    ---
    error:
        name: "AssertionError"
        message: "expected 5 to be 4 // Object.is equality"
    at: "/root-directory/__tests__/test-file-1.test.ts:20:28"
    actual: "5"
    expected: "4"
    ...
ok 2 - __tests__/test-file-1.test.ts > first test file > 4 - 2 should equal 2 # time=0.00ms

Reporter de processus en attente ​

Affiche une liste des processus en attente qui empêchent Vitest de se fermer en toute sécurité. Le reporter hanging-process n'affiche pas les résultats des tests, mais peut être utilisé avec un autre reporter pour surveiller les processus pendant l'exécution des tests. L'utilisation de ce reporter peut consommer beaucoup de ressources et doit donc généralement être réservée au débogage dans les situations où Vitest ne parvient pas à quitter le processus de manière cohérente.

bash
npx vitest --reporter=hanging-process
ts
export default defineConfig({
  test: {
    reporters: ['hanging-process'],
  },
});

Reporter Github Actions 1.3.0+ ​

Émet des commandes de workflow pour fournir des annotations pour les échecs de test. Ce reporter est automatiquement activé avec un reporter default lorsque process.env.GITHUB_ACTIONS === 'true'.

Si vous configurez des reporters autres que ceux définis par défaut, vous devez ajouter explicitement github-actions.

ts
export default defineConfig({
  test: {
    reporters: process.env.GITHUB_ACTIONS ? ['dot', 'github-actions'] : ['dot'],
  },
});
Github ActionsGithub Actions

Reporters personnalisés ​

Vous pouvez utiliser des reporters personnalisés tiers installés depuis NPM en spécifiant le nom de leur paquet dans l'option des reporters :

bash
npx vitest --reporter=some-published-vitest-reporter
ts
export default defineConfig({
  test: {
    reporters: ['some-published-vitest-reporter'],
  },
});

De plus, vous pouvez définir vos propres reporters personnalisés et les utiliser en spécifiant le chemin d'accès à leur fichier :

bash
npx vitest --reporter=./path/to/reporter.ts

Les reporters personnalisés doivent implémenter l'interface Reporter.

Pager
Page précédenteFiltrage des tests
Page suivanteCouverture

Publié sous la licence MIT.

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/reporters

Publié sous la licence MIT.

Copyright (c) 2024 Mithril Contributors