扩展默认的报告器
你可以从 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