Skip to content
Vitest 3
Main Navigation Guida & APIConfigurazioneModalità BrowserAPI avanzata
3.2.0
2.1.9
1.6.1
0.34.6

Italiano

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

Italiano

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

Aspetto

Sidebar Navigation

API

Node API

API Avanzate

API di Vitest

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API dei Plugin

API del Runner

Reporter

Metadati del Task

Guida

Esecuzione dei Test

Estensione dei Reporter

Pool Personalizzato

Configurazione di Vitest

Riferimento API di test

In questa pagina

Estensione dei Reporter ​

WARNING

Questa è un'API avanzata. Se desideri solo configurare i reporter integrati, consulta la guida sui "Reporter".

È possibile importare i reporter da vitest/reporters ed estenderli per creare i propri reporter personalizzati.

Estensione dei Reporter Integrati ​

In generale, non è necessario creare un reporter da zero. vitest include diversi programmi di reporting predefiniti che è possibile estendere.

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

export default class MyDefaultReporter extends DefaultReporter {
  // esegui un'operazione
}

In alternativa, è possibile creare il proprio reporter da zero. È sufficiente estendere la classe BaseReporter e implementare i metodi necessari.

Di seguito è riportato un esempio di reporter personalizzato:

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

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

Oppure implementare l'interfaccia Reporter:

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

export default class CustomReporter implements Reporter {
  onCollected() {
    // stampa un messaggio
  }
}

È quindi possibile utilizzare il proprio reporter personalizzato nel file vitest.config.ts:

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

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

Task Riportati ​

Anziché utilizzare i task ricevuti direttamente dai reporter, è consigliato impiegare l'API dei Task Riportati.

È possibile accedere a questa API chiamando 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) {
      // si noti che la vecchia implementazione del task utilizza "file" anziché "module"
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

Reporter Esportati ​

vitest include alcuni reporter integrati che è possibile utilizzare immediatamente.

Reporter Integrati: ​

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

Reporter Astratti di Base: ​

  1. BaseReporter

Interfacce Reporter: ​

  1. Reporter
Pager
Pagina precedenteEsecuzione dei Test
Pagina successivaPool Personalizzato

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team