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

TestModule ​

Die Klasse TestModule repräsentiert ein Modul innerhalb eines Projekts. Diese Klasse ist ausschließlich im Hauptthread verfügbar. Für Aufgaben, die zur Laufzeit ausgeführt werden, konsultieren Sie bitte die "Runner API".

Instanzen der TestModule-Klasse besitzen stets eine type-Eigenschaft mit dem Wert module. Dies ermöglicht die Unterscheidung zwischen verschiedenen Task-Typen:

ts
if (task.type === 'module') {
  task; // TestModule
}

Erweiterung von Suite-Methoden

Die Klasse TestModule erbt alle Methoden und Eigenschaften von der TestSuite. Dieser Leitfaden listet nur die Methoden und Eigenschaften auf, die spezifisch für TestModule sind.

moduleId ​

Dies ist üblicherweise ein absoluter Unix-Dateipfad (auch unter Windows). Es kann sich um eine virtuelle ID handeln, falls die Datei nicht physisch auf der Festplatte existiert. Dieser Wert entspricht der ModuleGraph-ID von Vite.

ts
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌

state ​

ts
function state(): TestModuleState;

Funktioniert analog zu testSuite.state(), kann jedoch zusätzlich queued zurückgeben, wenn das Modul noch nicht ausgeführt wurde.

meta 3.1.0+ ​

ts
function meta(): TaskMeta;

Benutzerdefinierte Metadaten, die während der Ausführung oder Sammlung an das Modul angehängt wurden. Metadaten können während eines Testlaufs durch Zuweisung einer Eigenschaft zum task.meta-Objekt hinzugefügt werden:

ts
import { test } from 'vitest';

describe('the validation works correctly', task => {
  // Zuweisung von "decorated" während der Sammlung
  task.file.meta.decorated = false;

  test('some test', ({ task }) => {
    // Zuweisung von "decorated" während des Testlaufs; es wird
    // dann nur im onTestCaseReady-Hook verfügbar sein
    task.file.meta.decorated = false;
  });
});

TIP

Wenn Metadaten während der Sammlung (außerhalb der test-Funktion) hinzugefügt wurden, sind sie im onTestModuleCollected-Hook des benutzerdefinierten Reporters verfügbar.

diagnostic ​

ts
function diagnostic(): ModuleDiagnostic;

Nützliche Modulinformationen, wie z.B. Dauer, Speicherverbrauch usw. Falls das Modul noch nicht ausgeführt wurde, geben alle Diagnosewerte 0 zurück.

ts
interface ModuleDiagnostic {
  /**
   * Die Zeit für den Import und die Initialisierung einer Umgebung.
   */
  readonly environmentSetupDuration: number;
  /**
   * Die Zeit, die Vitest zum Einrichten des Test-Harness (Runner, Mocks usw.) benötigt.
   */
  readonly prepareDuration: number;
  /**
   * Die Zeit, die zum Importieren des Testmoduls benötigt wird.
   * Dies beinhaltet den Import aller Inhalte im Modul und die Ausführung von Suite-Callbacks.
   */
  readonly collectDuration: number;
  /**
   * Die Zeit, die zum Importieren des Setup-Moduls benötigt wird.
   */
  readonly setupDuration: number;
  /**
   * Akkumulierte Dauer aller Tests und Hooks im Modul.
   */
  readonly duration: number;
  /**
   * Die vom Modul in Bytes verwendete Speichermenge.
   * Dieser Wert ist nur verfügbar, wenn der Test mit dem Flag `logHeapUsage` ausgeführt wurde.
   */
  readonly heap: number | undefined;
  /**
   * Die Zeit, die für den Import jeder von Vitest verarbeiteten, nicht externalisierten Abhängigkeit aufgewendet wurde.
   */
  readonly importDurations: Record<string, ImportDuration>;
}

/** Die Zeit für den Import und die Ausführung einer nicht externalisierten Datei. */
interface ImportDuration {
  /** Die Zeit für den Import und die Ausführung der Datei selbst, exklusive aller nicht externalisierten Importe der Datei. */
  selfTime: number;

  /** Die Zeit für den Import und die Ausführung der Datei und all ihrer Importe. */
  totalTime: number;
}
Pager
Vorherige SeiteTestSuite
Nächste SeiteTestCollection

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/api/test-module

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team