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