跳至内容

扩展 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:

  1. BasicReporter
  2. DefaultReporter
  3. DotReporter
  4. JsonReporter
  5. VerboseReporter
  6. TapReporter
  7. JUnitReporter
  8. TapFlatReporter
  9. HangingProcessReporter

基础抽象 Reporter:

  1. BaseReporter

接口 Reporter:

  1. Reporter