Kommandozeilenschnittstelle
Befehle
vitest
Startet Vitest im aktuellen Verzeichnis. Im Entwicklungsmodus wechselt Vitest automatisch in den Beobachtungsmodus, in der CI-Umgebung in den Ausführungsmodus.
Sie können ein zusätzliches Argument als Filter für die auszuführenden Testdateien übergeben. Zum Beispiel:
vitest foobarFührt nur die Testdateien aus, deren Pfad foobar enthält. Dieser Filter prüft lediglich auf Inklusion und unterstützt keine regulären Ausdrücke oder Glob-Muster (es sei denn, Ihr Terminal verarbeitet diese, bevor Vitest den Filter empfängt).
vitest run
Führt Tests einmalig aus, ohne den Beobachtungsmodus zu aktivieren.
vitest watch
Führt alle Testsuiten aus und überwacht Änderungen. Bei Änderungen werden die Tests erneut ausgeführt. Entspricht dem Aufruf von vitest ohne Argument. In CI-Umgebungen wird automatisch vitest run ausgeführt.
vitest dev
Alias für vitest watch.
vitest related
Führt nur Tests aus, die eine Liste von Quelldateien abdecken. Funktioniert mit statischen Importen (z. B. import('./index.ts') oder import index from './index.ts'), jedoch nicht mit dynamischen Importen (z. B. import(filepath)). Alle Dateien sollten relativ zum Projektstammverzeichnis sein.
Nützlich in Kombination mit lint-staged oder in Ihrer CI-Umgebung.
vitest related /src/index.ts /src/hello-world.jsTIP
Beachten Sie, dass Vitest standardmäßig mit aktiviertem Beobachtungsmodus ausgeführt wird. Wenn Sie Tools wie lint-staged verwenden, sollten Sie zusätzlich die Option --run übergeben, damit der Befehl ordnungsgemäß abgeschlossen wird.
// .lintstagedrc.js
export default {
'*.{js,ts}': 'vitest related --run',
};vitest bench
Führt nur Benchmark-Tests aus, die Leistungsergebnisse vergleichen.
Optionen
| Optionen | |
|---|---|
-v, --version | Zeigt die Versionsnummer an |
-r, --root <path> | Definiert das Projektstammverzeichnis |
-c, --config <path> | Pfad zur Konfigurationsdatei |
-u, --update | Aktualisiert Snapshots |
-w, --watch | Aktiviert den intelligenten & sofortigen Beobachtungsmodus |
-t, --testNamePattern <pattern> | Führt Tests aus, deren vollständiger Name dem Muster entspricht |
--dir <path> | Basisverzeichnis, in dem nach Testdateien gesucht wird |
--ui | Aktiviert die UI |
--open | Öffnet die UI automatisch, falls aktiviert (Standard: true) |
--api [api] | Stellt die API bereit. Verfügbare Optionen: --api.port <port>, --api.host [host] und --api.strictPort |
--threads | Aktiviert Threads (Standard: true) |
--single-thread | Führt Tests in einem einzelnen Thread aus. Erfordert --threads (Standard: false) |
--experimental-vm-threads | Führt Tests in einem Worker-Pool mit VM-Isolation aus (Standard: false) |
--experimental-vm-worker-memory-limit | Legt den maximal zulässigen Speicher für einen Worker fest. Wird dieser Wert erreicht, wird ein neuer Worker erstellt |
--silent | Unterdrückt Konsolenausgaben der Tests |
--isolate | Isolierte Umgebung für jede Testdatei (Standard: true) |
--reporter <name> | Wählt den Reporter aus: default, verbose, dot, junit, json oder ein Pfad zu einem benutzerdefinierten Reporter |
--outputFile <filename/-s> | Schreibt Testergebnisse in eine Datei, wenn auch die Option --reporter=json oder --reporter=junit angegeben ist. Über cac's dot notation können Sie einzelne Ausgaben für mehrere Reporter angeben |
--coverage | Aktiviert die Coverage-Berichterstattung |
--run | Deaktiviert den Beobachtungsmodus |
--mode | Überschreibt den Vite-Modus (Standard: test) |
--mode <name> | Überschreibt den Vite-Modus (Standard: test) |
--globals | Injiziert APIs global |
--dom | Simuliert Browser-APIs mit happy-dom |
--browser [options] | Führt Tests im Browser aus (Standard: false) |
--environment <env> | Runner-Umgebung (Standard: node) |
--passWithNoTests | Wird als bestanden gewertet, wenn keine Tests gefunden wurden |
--logHeapUsage | Zeigt die Heap-Größe für jeden Test an |
--allowOnly | Erlaubt Tests und Suiten, die als only markiert sind (Standard: false in CI, ansonsten true) |
--dangerouslyIgnoreUnhandledErrors | Ignoriert alle unbehandelten Fehler, die auftreten |
--changed [since] | Führt nur Tests für geänderte Dateien aus (Standard: false). Siehe Dokumentation |
--shard <shard> | Führt Tests in einem bestimmten Shard aus |
--sequence | Definiert, in welcher Reihenfolge Tests ausgeführt werden. Verwenden Sie cac's dot notation, um Optionen anzugeben (verwenden Sie beispielsweise --sequence.shuffle, um Tests in zufälliger Reihenfolge auszuführen, oder --sequence.shuffle --sequence.seed SEED_ID, um eine bestimmte Reihenfolge auszuführen) |
--no-color | Entfernt Farben aus der Konsolenausgabe |
--inspect | Aktiviert den Node.js-Inspektor |
--inspect-brk | Aktiviert den Node.js-Inspektor mit Breakpoint |
--bail <number> | Stoppt die Testausführung, wenn die angegebene Anzahl von Tests fehlgeschlagen ist |
--retry <times> | Wiederholt den Test eine bestimmte Anzahl von Malen, wenn er fehlschlägt |
-h, --help | Zeigt die verfügbaren CLI-Optionen an |
TIP
Vitest unterstützt sowohl Camel Case als auch Kebab Case für CLI-Argumente. Zum Beispiel funktionieren --passWithNoTests und --pass-with-no-tests beide (--no-color und --inspect-brk sind die Ausnahmen).
Vitest unterstützt auch verschiedene Möglichkeiten, den Wert anzugeben: --reporter dot und --reporter=dot sind beide gültig.
Wenn eine Option ein Array von Werten unterstützt, müssen Sie die Option mehrmals übergeben:
vitest --reporter=dot --reporter=defaultBoolesche Optionen können mit dem Präfix no- negiert werden. Die Angabe des Werts als false funktioniert ebenfalls:
vitest --no-api
vitest --api=falsechanged
Typ:
boolean | stringStandard: false
Führt Tests nur für geänderte Dateien aus. Wenn kein Wert angegeben wird, werden Tests für nicht commitete Änderungen ausgeführt (einschließlich staged und unstaged Änderungen).
Um Tests für Änderungen auszuführen, die im letzten Commit vorgenommen wurden, können Sie
--changed HEAD~1verwenden. Sie können auch Commit-Hash oder Branch-Namen übergeben.In Verbindung mit der Konfigurationsoption
forceRerunTriggerswird die gesamte Testsuite ausgeführt, wenn eine Übereinstimmung gefunden wird.
shard
Typ:
stringStandard: deaktiviert
Testsuite-Shard, der im Format
<index>/<count>ausgeführt werden soll, wobeicounteine positive ganze Zahl ist, die die Anzahl der Shards angibtindexeine positive ganze Zahl ist, die den Index des Shards angibt
Dieser Befehl teilt alle Tests in
countgleich große Shards auf und führt nur die Tests aus, die sich imindex-Shard befinden. Um Ihre Testsuite beispielsweise in drei Shards aufzuteilen, verwenden Sie Folgendes:shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
WARNING
Diese Option kann nicht verwendet werden, wenn --watch aktiviert ist (standardmäßig in der Entwicklungsumgebung aktiviert).