跳至內容

擴充報告器

你可以從 vitest/reporters 匯入報告器,並擴充它們來建立自訂報告器。

擴充內建報告器

一般來說,你不需要從頭建立報告器。vitest 附帶幾個預設報告程式,你可以擴充它們。

ts
import {  } from 'vitest/reporters'

export default class  extends  {
  // 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 附帶幾個 內建報告器,你可以直接使用。

內建報告器:

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

基礎抽象報告器:

  1. BaseReporter

介面報告器:

  1. Reporter