Étendre les reporters
Vous pouvez importer des reporters depuis vitest/reporters et les étendre pour créer vos propres reporters personnalisés.
Extension des reporters intégrés
Il n'est généralement pas nécessaire de créer un reporter de toutes pièces. vitest propose plusieurs reporters par défaut que vous pouvez étendre.
ts
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// faire quelque chose
}Bien entendu, vous pouvez créer votre reporter de zéro. Étendez simplement BaseReporter et implémentez les méthodes nécessaires.
Voici un exemple de reporter personnalisé :
ts
// ./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);
}
}Ou implémentez l'interface Reporter :
ts
// ./custom-reporter.js
import { Reporter } from 'vitest/reporters';
export default class CustomReporter implements Reporter {
onCollected() {
// afficher quelque chose
}
}Ensuite, vous pouvez utiliser votre reporter personnalisé dans vitest.config.ts :
ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
});Reporters exportés
vitest est fourni avec plusieurs reporters intégrés prêts à l'emploi.
Reporters intégrés :
BasicReporterDefaultReporterDotReporterJsonReporterVerboseReporterTapReporterJUnitReporterTapFlatReporterHangingProcessReporter
Classe de base abstraite pour les reporters :
BaseReporter
Interface des reporters :
Reporter