Расширение репортеров
Вы можете импортировать репортеры из vitest/reporters и расширять их для создания собственных.
Расширение встроенных репортеров
Как правило, нет необходимости создавать репортер с нуля. vitest предоставляет несколько репортеров по умолчанию, которые можно расширить.
ts
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// do something
}Разумеется, вы можете создать свой репортер с нуля. Просто расширьте класс BaseReporter и реализуйте необходимые методы.
Вот пример пользовательского репортера:
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);
}
}Или реализуйте интерфейс Reporter:
ts
// ./custom-reporter.js
import { Reporter } from 'vitest/reporters';
export default class CustomReporter implements Reporter {
onCollected() {
// print something
}
}Затем вы можете использовать свой пользовательский репортер в файле vitest.config.ts:
ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
});Экспортируемые репортеры
vitest предоставляет несколько встроенных репортеров, готовых к использованию.
Встроенные репортеры:
BasicReporterDefaultReporterDotReporterJsonReporterVerboseReporterTapReporterJUnitReporterTapFlatReporterHangingProcessReporter
Базовые абстрактные репортеры:
BaseReporter
Интерфейсы репортеров:
Reporter