Estendere i reporter predefiniti
È possibile importare i reporter da vitest/reporters ed estenderli per creare reporter personalizzati.
Estensione dei reporter integrati
Generalmente, non è necessario creare un reporter da zero. vitest fornisce diversi reporter predefiniti che possono essere estesi.
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// Esegui operazioni personalizzate
}È comunque possibile creare un reporter completamente personalizzato. In tal caso, è sufficiente estendere la classe BaseReporter e implementare i metodi necessari.
Ecco un esempio di reporter personalizzato:
// ./custom-reporter.js
import { BaseReporter } from 'vitest/reporters';
export default class CustomReporter extends BaseReporter {
onCollected() {
const files = this.ctx.state.getFiles(this.watchFilters);
this.reportTestSummary(files);
}
}In alternativa, è possibile implementare l'interfaccia Reporter:
// ./custom-reporter.js
import { Reporter } from 'vitest/reporters';
export default class CustomReporter implements Reporter {
onCollected() {
// Stampa informazioni specifiche
}
}Per utilizzare il reporter personalizzato, è necessario configurarlo nel file vitest.config.ts:
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
});Reporter esportati
vitest fornisce diversi reporter integrati pronti all'uso.
Reporter integrati:
BasicReporterDefaultReporterDotReporterJsonReporterVerboseReporterTapReporterJUnitReporterTapFlatReporterHangingProcessReporter
Classi base astratte per reporter:
BaseReporter
Interfacce per reporter:
Reporter