Skip to content
Vitest 3
Main Navigation Leitfaden & APIKonfigurationBrowser-ModusFortgeschritten API
3.2.0
2.1.9
1.6.1
0.34.6

Deutsch

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

Deutsch

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

Aussehen

Sidebar Navigation

API

Node API

Erweiterte API

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

Plugin-API

Runner API

Reporter

Aufgaben-Metadaten

Leitfaden

Tests ausführen

Reporter erweitern

Benutzerdefinierter Pool

Vitest konfigurieren

Test-API-Referenz

Auf dieser Seite

Reporter erweitern ​

WARNING

Dies ist eine fortgeschrittene API. Wenn Sie nur integrierte Reporter konfigurieren möchten, lesen Sie die Anleitung "Reporter".

Sie können Reporter aus vitest/reporters importieren und erweitern, um Ihre benutzerdefinierten Reporter zu erstellen.

Integrierte Reporter erweitern ​

Im Allgemeinen müssen Sie Ihren Reporter nicht von Grund auf neu erstellen. vitest wird mit mehreren Standard-Reportern geliefert, die Sie erweitern können.

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

export default class MyDefaultReporter extends DefaultReporter {
  // Logik implementieren
}

Alternativ können Sie Ihren Reporter auch von Grund auf neu erstellen. Erweitern Sie dazu einfach die Klasse BaseReporter und implementieren Sie die benötigten Methoden.

Hier ist ein Beispiel für einen benutzerdefinierten Reporter:

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

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

Oder implementieren Sie das Reporter-Interface:

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

export default class CustomReporter implements Reporter {
  onCollected() {
    // Informationen ausgeben
  }
}

Anschließend können Sie Ihren benutzerdefinierten Reporter in der Datei vitest.config.ts verwenden:

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

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

Berichtete Aufgaben ​

Anstatt die direkt von Reportern empfangenen Aufgaben zu verwenden, wird empfohlen, stattdessen die Reported Tasks API zu nutzen.

Sie können auf diese API zugreifen, indem Sie vitest.state.getReportedEntity(runnerTask) aufrufen:

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) {
      // Hinweis: Die alte Aufgabenimplementierung verwendet "file" anstelle von "module".
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

Exportierte Reporter ​

vitest wird mit einigen integrierten Reportern geliefert, die Sie direkt verwenden können.

Integrierte Reporter: ​

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

Abstrakte Basisreporter: ​

  1. BaseReporter

Reporter-Schnittstellen: ​

  1. Reporter
Pager
Vorherige SeiteTests ausführen
Nächste SeiteBenutzerdefinierter Pool

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team