Skip to content
Vitest 3
Main Navigation Guide & APIConfigurationMode NavigateurAPI avancée
3.2.0
2.1.9
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

API

Node API

API avancée

API Vitest

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API des plugins

API du Runner

Rapporteurs

Métadonnées de tâche

Guide

Exécuter les tests

Extension des Rapporteurs

Pool personnalisé

Configuration de Vitest

Référence de l'API des Tests

Sur cette page

Extension des Rapporteurs ​

WARNING

Il s'agit d'une API avancée. Si vous souhaitez simplement configurer les rapporteurs intégrés, veuillez consulter le guide "Rapporteurs".

Vous pouvez importer des rapporteurs depuis vitest/reporters et les étendre pour créer vos propres rapporteurs personnalisés.

Extension des Rapporteurs Intégrés ​

En général, il n'est pas nécessaire de créer votre rapporteur à partir de zéro. vitest est livré avec plusieurs rapporteurs par défaut que vous pouvez étendre.

ts
import { DefaultReporter } from 'vitest/reporters';

export default class MyDefaultReporter extends DefaultReporter {
  // implémenter la logique
}

Bien sûr, vous pouvez également créer votre rapporteur entièrement à partir de zéro. Il suffit d'étendre la classe BaseReporter et d'implémenter les méthodes nécessaires.

Voici un exemple de rapporteur personnalisé :

ts
import { BaseReporter } from 'vitest/reporters';

export default class CustomReporter extends BaseReporter {
  onCollected() {
    const files = this.ctx.state.getFiles(this.watchFilters);
    this.reportTestSummary(files);
  }
}

Ou implémentez l'interface Reporter :

ts
import type { Reporter } from 'vitest/node';

export default class CustomReporter implements Reporter {
  onCollected() {
    // imprimer quelque chose
  }
}

Ensuite, vous pouvez utiliser votre rapporteur personnalisé dans le fichier vitest.config.ts :

ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';

export default defineConfig({
  test: {
    reporters: [new CustomReporter()],
  },
});

Tâches Rapportées ​

Au lieu d'utiliser les tâches que les rapporteurs reçoivent directement, il est recommandé d'utiliser l'API des Tâches Rapportées.

Pour accéder à cette API, appelez vitest.state.getReportedEntity(runnerTask) :

ts
import type { Reporter, RunnerTestFile, TestModule, Vitest } from 'vitest/node';

class MyReporter implements Reporter {
  private vitest!: Vitest;

  onInit(vitest: Vitest) {
    this.vitest = vitest;
  }

  onFinished(files: RunnerTestFile[]) {
    for (const file of files) {
      // notez que l'ancienne implémentation de tâche utilise "file" au lieu de "module"
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

Rapporteurs Exportés ​

vitest inclut plusieurs rapporteurs intégrés que vous pouvez utiliser directement.

Rapporteurs intégrés : ​

  1. BasicReporter
  2. DefaultReporter
  3. DotReporter
  4. JsonReporter
  5. VerboseReporter
  6. TapReporter
  7. JUnitReporter
  8. TapFlatReporter
  9. HangingProcessReporter

Rapporteurs Abstraits de Base : ​

  1. BaseReporter

Rapporteurs d'interface : ​

  1. Reporter
Pager
Page précédenteExécuter les tests
Page suivantePool personnalisé

Publié sous la licence MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

Publié sous la licence MIT.

Copyright (c) 2021-Present Vitest Team