デフォルトレポーターの拡張方法
vitest/reporters
からレポーターをインポートし、それらを拡張することでカスタムレポーターを作成できます。
組み込みレポーターの拡張
通常、レポーターをゼロから作成する必要はありません。 vitest
には、拡張可能なデフォルトレポーターがいくつか用意されています。
ts
import { DefaultReporter } from 'vitest/reporters';
export default class MyDefaultReporter extends DefaultReporter {
// 何らかの処理
}
もちろん、レポーターをゼロから作成することも可能です。 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() {
// 何らかの処理を出力
}
}
次に、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