Skip to content
Vitest 3
Main Navigation Guía & APIConfiguraciónModo NavegadorAPI avanzada
3.2.0
2.1.9
1.6.1
0.34.6

Español

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

Español

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

Apariencia

Sidebar Navigation

API

Node API

API Avanzadas

API de Vitest

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API de Plugins

API del Runner

Reporteros

Metadatos de Tareas

Guía

Ejecución de Pruebas

Extensión de los Reporters

Pool Personalizado

Configuración de Vitest

Referencia de la API de prueba

En esta página

Extensión de los Reporters ​

WARNING

Esta es una API avanzada. Si solo necesitas configurar los reporters integrados, consulta la guía "Reporters".

Puedes importar reporters desde vitest/reporters y extenderlos para crear tus reporters personalizados.

Extensión de los Reporters Integrados ​

En general, no es necesario crear tu reporter desde cero. vitest incluye varios reporters predeterminados que puedes extender.

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

export default class MyDefaultReporter extends DefaultReporter {
  // realizar alguna acción
}

Alternativamente, puedes crear tu reporter desde cero. Simplemente extiende la clase BaseReporter e implementa los métodos que necesites.

A continuación, se presenta un ejemplo de un reporter personalizado:

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

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

O implementa la interfaz Reporter:

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

export default class CustomReporter implements Reporter {
  onCollected() {
    // mostrar información
  }
}

Luego, puedes usar tu reporter personalizado en el archivo vitest.config.ts:

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

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

Tareas Reportadas ​

En lugar de utilizar las tareas que reciben los reporters directamente, se recomienda usar la API de Tareas Reportadas.

Puedes acceder a esta API llamando a 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) {
      // Nota: la implementación anterior de la tarea usaba "file" en lugar de "module"
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

Reporters Exportados ​

vitest incluye algunos reporters integrados que puedes usar directamente.

Reporters integrados: ​

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

Reporters abstractos base: ​

  1. BaseReporter

Reporters de interfaz: ​

  1. Reporter
Pager
AnteriorEjecución de Pruebas
SiguientePool Personalizado

Publicado bajo la licencia MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

Publicado bajo la licencia MIT.

Copyright (c) 2021-Present Vitest Team