Node API
WARNING
Vitest stellt experimentelle, private APIs bereit. Änderungen, die zu Inkompatibilitäten führen, folgen möglicherweise nicht dem Semver. Bitte fixieren Sie die Vitest-Version, wenn Sie diese verwenden.
startVitest
Sie können Vitest-Tests über die Node-API starten:
import { startVitest } from 'vitest/node';
const vitest = await startVitest('test');
await vitest?.close();Die Funktion startVitest gibt eine Vitest-Instanz zurück, wenn die Tests erfolgreich gestartet werden konnten. Sie gibt undefined zurück, wenn eine der folgenden Bedingungen zutrifft:
- Vitest konnte das Paket "vite" nicht finden (dieses wird normalerweise mit Vitest installiert).
- Die Coverage ist aktiviert und der Ausführungsmodus ist "test", aber das Testabdeckungspaket ist nicht installiert (
@vitest/coverage-v8oder@vitest/coverage-istanbul). - Das Umgebungspaket ist nicht installiert (
jsdom/happy-dom/@edge-runtime/vm).
Wenn undefined zurückgegeben wird oder während der Ausführung Fehler in den Tests auftreten, setzt Vitest process.exitCode auf 1.
Wenn der Beobachtungsmodus nicht aktiviert ist, wird die Methode close der Vitest-Instanz aufgerufen.
Wenn der Beobachtungsmodus aktiviert ist und das Terminal TTY unterstützt, registriert Vitest Konsolenkurzbefehle.
Sie können eine Liste von Filtern als zweites Argument angeben. Vitest führt dann nur Tests aus, deren Dateipfad mindestens eine der übergebenen Zeichenketten enthält.
Zusätzlich können Sie das dritte Argument verwenden, um CLI-Argumente zu übergeben, die alle Testkonfigurationsoptionen überschreiben.
Alternativ können Sie die vollständige Vite-Konfiguration als viertes Argument übergeben. Diese Konfiguration hat Vorrang vor allen anderen benutzerdefinierten Optionen.
createVitest
Sie können eine Vitest-Instanz mit der Funktion createVitest selbst erstellen. Sie gibt dieselbe Vitest-Instanz wie startVitest zurück, startet jedoch keine Tests und überprüft nicht, ob die erforderlichen Pakete installiert sind.
import { createVitest } from 'vitest/node';
const vitest = await createVitest('test', {
watch: false,
});Vitest
Für die Vitest-Instanz muss der aktuelle Testmodus angegeben werden. Dies kann einer der folgenden Werte sein:
testbeim Ausführen von Unit-Testsbenchmarkbeim Ausführen von Benchmarkstypecheckbeim Ausführen von Typprüfungen
mode
test
Im Testmodus werden nur Funktionen innerhalb von test oder it aufgerufen. Der Aufruf von bench führt zu einem Fehler. Dieser Modus verwendet die Optionen include und exclude in der Konfiguration, um Testdateien zu identifizieren.
benchmark
Im Benchmark-Modus werden bench-Funktionen aufgerufen. Der Aufruf von test oder it führt zu einem Fehler. Dieser Modus verwendet die Optionen benchmark.include und benchmark.exclude in der Konfiguration, um Benchmark-Dateien zu identifizieren.
typecheck
Im Typecheck-Modus werden keine Tests ausgeführt. Es werden lediglich Typen analysiert und eine Zusammenfassung erstellt. Dieser Modus verwendet die Optionen typecheck.include und typecheck.exclude in der Konfiguration, um die zu analysierenden Dateien zu identifizieren.
start
Sie können die Ausführung von Tests oder Benchmarks mit der Methode start starten. Sie können ein Array von Zeichenketten übergeben, um die Testdateien zu filtern.