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

TestCase ​

Die Klasse TestCase repräsentiert einen einzelnen Test. Diese Klasse ist ausschließlich im Hauptthread verfügbar. Für die Arbeit mit Laufzeitaufgaben lesen Sie bitte die "Runner API".

Eine TestCase-Instanz besitzt immer eine type-Eigenschaft mit dem Wert test. Diese Eigenschaft kann zur Unterscheidung zwischen verschiedenen Task-Typen verwendet werden:

ts
if (task.type === 'test') {
  task; // TestCase
}

project ​

Dies ist ein Verweis auf das TestProject, zu dem der Test gehört.

module ​

Dies ist ein direkter Verweis auf das TestModule, in dem der Test definiert ist.

name ​

Dies ist der Testname, der an die test-Funktion übergeben wird.

ts
import { test } from 'vitest';

// [!code word:'the validation works correctly']
test('the validation works correctly', () => {
  // ...
});

fullName ​

Der vollständige Name des Tests, der alle übergeordneten Test-Suiten einschließt und durch das Symbol > getrennt ist. Für das folgende Beispiel lautet der vollständige Name des Tests "the validation logic > the validation works correctly":

ts
import { describe, test } from 'vitest';

// [!code word:'the validation works correctly']
// [!code word:'the validation logic']
describe('the validation logic', () => {
  test('the validation works correctly', () => {
    // ...
  });
});

id ​

Dies ist die eindeutige Kennung für den Test. Diese ID ist deterministisch und bleibt für denselben Test über mehrere Ausführungen hinweg gleich. Die ID basiert auf dem Projekt-Namen, der Modul-ID und der Testreihenfolge.

Die ID hat folgendes Format:

1223128da3_0_0
^^^^^^^^^^ Datei-Hash
           ^ Suite-Index
             ^ Test-Index

TIP

Sie können den Datei-Hash mit der Funktion generateFileHash aus vitest/node generieren, die seit Vitest 3 verfügbar ist:

ts
import { generateFileHash } from 'vitest/node';

const hash = generateFileHash(
  '/file/path.js', // relativer Pfad
  undefined // der Projektname oder `undefined`, falls dieser nicht gesetzt ist
);

DANGER

Versuchen Sie nicht, die ID zu parsen. Sie kann am Anfang ein Minuszeichen enthalten: -1223128da3_0_0_0.

location ​

Die Position im Modul, an der der Test definiert wurde. Positionsinformationen werden nur gesammelt, wenn includeTaskLocation in der Konfiguration aktiviert ist. Beachten Sie, dass diese Option automatisch aktiviert wird, wenn die Flags --reporter=html, --ui oder --browser verwendet werden.

Die Position dieses Tests wird { line: 3, column: 1 } sein:

ts
import { test } from 'vitest'

test('the validation works correctly', () => {
  // ...
})
1
2
3
4
5

parent ​

Die übergeordnete Test-Suite. Wenn der Test direkt innerhalb des Moduls aufgerufen wurde, ist das übergeordnete Element das Modul selbst.

options ​

ts
interface TaskOptions {
  readonly each: boolean | undefined;
  readonly fails: boolean | undefined;
  readonly concurrent: boolean | undefined;
  readonly shuffle: boolean | undefined;
  readonly retry: number | undefined;
  readonly repeats: number | undefined;
  readonly mode: 'run' | 'only' | 'skip' | 'todo';
}

Die Optionen, mit denen der Test definiert wird.

ok ​

ts
function ok(): boolean;

Prüft, ob der Test die Suite nicht zum Fehlschlagen gebracht hat. Wenn der Test noch nicht abgeschlossen oder übersprungen wurde, wird true zurückgegeben.

meta ​

ts
function meta(): TaskMeta;

Benutzerdefinierte Metadaten, die während der Ausführung an den Test angehängt werden. Die Metadaten können angehängt werden, indem eine Eigenschaft dem Objekt ctx.task.meta während eines Testlaufs zugewiesen wird:

ts
import { test } from 'vitest';

test('the validation works correctly', ({ task }) => {
  // ...

  task.meta.decorated = false;
});

Wenn der Test noch nicht beendet wurde, sind die Metadaten ein leeres Objekt.

result ​

ts
function result(): TestResult;

Die Ergebnisse des Tests. Wenn der Test noch nicht abgeschlossen oder gerade erst initialisiert wurde, ist der Wert TestResultPending:

ts
export interface TestResultPending {
  /**
   * Der Test wurde initialisiert, ist aber noch nicht abgeschlossen.
   */
  readonly state: 'pending';
  /**
   * Noch nicht ausgeführte Tests haben keine Fehler.
   */
  readonly errors: undefined;
}

Wenn der Test übersprungen wurde, ist der Rückgabewert TestResultSkipped:

ts
interface TestResultSkipped {
  /**
   * Der Test wurde mit dem Flag `skip` oder `todo` übersprungen.
   * Welches Flag verwendet wurde, können Sie in der Option `options.mode` sehen.
   */
  readonly state: 'skipped';
  /**
   * Übersprungene Tests weisen keine Fehler auf.
   */
  readonly errors: undefined;
  /**
   * Eine benutzerdefinierte Notiz, die an `ctx.skip(note)` übergeben wurde.
   */
  readonly note: string | undefined;
}

TIP

Wenn der Test übersprungen wurde, weil ein anderer Test das only-Flag hat, ist options.mode gleich skip.

Wenn der Test fehlgeschlagen ist, ist der Rückgabewert TestResultFailed:

ts
interface TestResultFailed {
  /**
   * Der Test konnte nicht ausgeführt werden.
   */
  readonly state: 'failed';
  /**
   * Fehler, die während der Testausführung aufgetreten sind.
   */
  readonly errors: ReadonlyArray<TestError>;
}

Wenn der Test erfolgreich war, ist der Rückgabewert TestResultPassed:

ts
interface TestResultPassed {
  /**
   * Der Test wurde erfolgreich bestanden.
   */
  readonly state: 'passed';
  /**
   * Fehler, die während der Testausführung aufgetreten sind.
   */
  readonly errors: ReadonlyArray<TestError> | undefined;
}

WARNING

Beachten Sie, dass ein Test mit dem Status passed immer noch Fehler enthalten kann – dies kann passieren, wenn retry mindestens einmal ausgelöst wurde.

diagnostic ​

ts
function diagnostic(): TestDiagnostic | undefined;

Nützliche Testinformationen wie Laufzeit, Speicherverbrauch etc.:

ts
interface TestDiagnostic {
  /**
   * Gibt an, ob die Dauer des Tests über `slowTestThreshold` liegt.
   */
  readonly slow: boolean;
  /**
   * Die vom Test verwendete Speichermenge in Bytes.
   * Dieser Wert ist nur verfügbar, wenn der Test mit dem Flag `logHeapUsage` ausgeführt wurde.
   */
  readonly heap: number | undefined;
  /**
   * Die Zeit, die zur Ausführung des Tests in Millisekunden benötigt wird.
   */
  readonly duration: number;
  /**
   * Der Teststartzeitpunkt in Millisekunden.
   */
  readonly startTime: number;
  /**
   * Die Anzahl der Wiederholungen des Tests.
   */
  readonly retryCount: number;
  /**
   * Die Anzahl der Testwiederholungen, wie durch die Option `repeats` konfiguriert.
   * Dieser Wert kann niedriger sein, wenn der Test während der Wiederholung fehlschlug und kein `retry` konfiguriert ist.
   */
  readonly repeatCount: number;
  /**
   * Gibt an, ob der Test bei einem zweiten Wiederholungsversuch bestanden wurde.
   */
  readonly flaky: boolean;
}

INFO

diagnostic() gibt undefined zurück, wenn der Test noch nicht zur Ausführung eingeplant wurde.

Pager
Vorherige SeiteTestSpecification
Nächste SeiteTestSuite

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team

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

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team