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:
BasicReporter
DefaultReporter
DotReporter
JsonReporter
VerboseReporter
TapReporter
JUnitReporter
TapFlatReporter
HangingProcessReporter
Classi base astratte per reporter:
BaseReporter
Interfacce per reporter:
Reporter