Расширение репортеров по умолчанию
Вы можете импортировать репортеры из 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
предоставляет несколько встроенных репортеров, готовых к использованию.
Встроенные репортеры:
BasicReporter
DefaultReporter
DotReporter
JsonReporter
VerboseReporter
TapReporter
JUnitReporter
TapFlatReporter
HangingProcessReporter
Базовые абстрактные репортеры:
BaseReporter
Интерфейсы репортеров:
Reporter