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) {
      // обратите внимание, что старая реализация задачи использует 'file', а не '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.

Авторские права (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team