Skip to content
Vitest 3
Main Navigation ガイド & API設定ブラウザモード高度なAPI
3.2.0
2.1.9
1.6.1
0.34.6

日本語

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
한국어
Italiano
Polski
Türkçe
čeština
magyar

日本語

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
한국어
Italiano
Polski
Türkçe
čeština
magyar

外観

Sidebar Navigation

API

Node API

上級者向けAPI

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

プラグイン API

Runner API

レポーター

タスクのメタデータ

ガイド

テストの実行

レポーターの拡張

カスタムプール

Vitest の設定

テストAPIリファレンス

このページの内容

レポーターの拡張 ​

WARNING

これは高度なAPIです。組み込みレポーターの設定のみを行いたい場合は、"レポーター" ガイドを参照してください。

vitest/reportersからレポーターをインポートし、それらを拡張してカスタムレポーターを作成できます。

組み込みレポーターの拡張 ​

一般的に、レポーターをゼロから作成する必要はありません。vitestには、拡張可能なデフォルトのレポーターがいくつか用意されています。

ts
import { DefaultReporter } from 'vitest/reporters';

export default class MyDefaultReporter extends DefaultReporter {
  // do something
}

もちろん、レポーターをゼロから作成することも可能です。その場合は、BaseReporterクラスを拡張し、必要なメソッドを実装するだけです。

以下はカスタムレポーターの実装例です。

ts
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
import type { Reporter } from 'vitest/node';

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()],
  },
});

レポート対象タスク ​

レポーターが受け取るタスクを直接使用する代わりに、レポート対象タスクAPIを使用することを推奨します。

このAPIには、vitest.state.getReportedEntity(runnerTask)を呼び出すことでアクセス可能です。

ts
import type { Reporter, RunnerTestFile, TestModule, Vitest } from 'vitest/node';

class MyReporter implements Reporter {
  private vitest!: Vitest;

  onInit(vitest: Vitest) {
    this.vitest = vitest;
  }

  onFinished(files: RunnerTestFile[]) {
    for (const file of files) {
      // note that the old task implementation uses "file" instead of "module"
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

提供されているレポーター ​

vitestには、すぐに使えるいくつかの組み込みレポーターが付属しています。

組み込みレポーター: ​

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

抽象基底レポーター: ​

  1. BaseReporter

インターフェース型レポーター: ​

  1. Reporter
Pager
前のページテストの実行
次のページカスタムプール

MITライセンス の下で公開されています。

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

MITライセンス の下で公開されています。

Copyright (c) 2021-Present Vitest Team