Estendendo os reporters
Você pode importar reporters de vitest/reporters
e estendê-los para criar seus próprios reporters personalizados.
Estendendo reporters integrados
Em geral, não é necessário criar um reporter do zero. O vitest
já oferece vários reporters padrão que podem ser estendidos.
ts
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// faça algo
}
Alternativamente, você pode criar seu reporter completamente do zero. Para isso, estenda a classe BaseReporter
e implemente os métodos necessários.
Aqui está um exemplo de um reporter personalizado:
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 implemente a interface Reporter
:
ts
// ./custom-reporter.js
import { Reporter } from 'vitest/reporters';
export default class CustomReporter implements Reporter {
onCollected() {
// imprima algo
}
}
Para usar seu reporter personalizado, configure-o no arquivo vitest.config.ts
:
ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
});
Reporters exportados
O vitest
inclui alguns reporters integrados que você pode usar diretamente.
Reporters integrados:
BasicReporter
DefaultReporter
DotReporter
JsonReporter
VerboseReporter
TapReporter
JUnitReporter
TapFlatReporter
HangingProcessReporter
Classes Base Abstratas para Repórteres:
BaseReporter
Interfaces para Repórteres:
Reporter