Skip to content
Vitest 3
Main Navigation Przewodnik & APIKonfiguracjaTryb przeglądarkiZaawansowane API
3.2.0
2.1.9
1.6.1
0.34.6

Polski

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

Polski

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

Wygląd

Sidebar Navigation

API

Node API

Zaawansowane API

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

API wtyczek

API modułu uruchamiającego

Reportery

Metadane zadań

Przewodnik

Uruchamianie testów

Rozszerzanie Reporterów

Niestandardowa pula

Konfiguracja Vitest

Dokumentacja API testowego

Na tej stronie

Rozszerzanie Reporterów ​

WARNING

To jest zaawansowane API. Jeśli chcesz tylko skonfigurować wbudowane reportery, przeczytaj przewodnik "Reportery".

Możesz importować reportery z vitest/reporters i rozszerzać je, aby tworzyć własne, niestandardowe reportery.

Rozszerzanie wbudowanych reporterów ​

Zasadniczo nie musisz tworzyć reportera od podstaw. vitest zawiera kilka domyślnych implementacji reporterów, które możesz rozszerzyć.

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

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

Oczywiście możesz stworzyć swój reporter od zera. Wystarczy rozszerzyć klasę BaseReporter i zaimplementować potrzebne metody.

A oto przykład niestandardowego reportera:

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

export default class CustomReporter extends BaseReporter {
  onCollected() {
    const files = this.ctx.state.getFiles(this.watchFilters);
    this.reportTestSummary(files);
  }
}

Lub zaimplementuj interfejs Reporter:

ts
import type { Reporter } from 'vitest/node';

export default class CustomReporter implements Reporter {
  onCollected() {
    // print something
  }
}

Następnie możesz użyć swojego niestandardowego reportera w pliku vitest.config.ts:

ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';

export default defineConfig({
  test: {
    reporters: [new CustomReporter()],
  },
});

Zadania raportowane ​

Zamiast bezpośrednio używać zadań, które otrzymują reporterzy, zaleca się użycie API zadań raportowanych.

Możesz uzyskać dostęp do tego API, wywołując 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) {
      // zauważ, że wcześniejsza implementacja zadania używa "file" zamiast "module"
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

Eksportowane reportery ​

vitest zawiera kilka wbudowanych reporterów, które możesz używać od razu.

Wbudowane reportery: ​

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

Bazowe reportery abstrakcyjne: ​

  1. BaseReporter

Interfejsy reporterów: ​

  1. Reporter
Pager
Poprzednia stronaUruchamianie testów
Następna stronaNiestandardowa pula

Opublikowano na licencji MIT.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

Opublikowano na licencji MIT.

Copyright (c) 2021-Present Vitest Team