扩展 Reporter
您可以从 vitest/reporters 中导入 Reporter 并扩展它们以创建自定义 Reporter。
扩展内置 Reporter
通常,您不需要从头开始创建 Reporter。vitest 带有几个默认的报告程序,您可以扩展它们。
ts
import { } from 'vitest/reporters'
export default class extends {
// do something
}当然,您可以从头开始创建 Reporter。只需扩展 BaseReporter 类并实现您需要的函数即可。
这是一个自定义 Reporter 的示例
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 文件中使用您的自定义 Reporter
ts
import { defineConfig } from 'vitest/config'
import CustomReporter from './custom-reporter.js'
export default defineConfig({
test: {
reporters: [new CustomReporter()],
},
})导出 Reporter
vitest 带有几个 内置 Reporter,您可以直接使用。
内置 Reporter:
BasicReporterDefaultReporterDotReporterJsonReporterVerboseReporterTapReporterJUnitReporterTapFlatReporterHangingProcessReporter
基础抽象 Reporter:
BaseReporter
接口 Reporter:
Reporter