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 foobar
Fü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.js
TIP
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=default
Boolesche Optionen können mit dem Präfix no-
negiert werden. Die Angabe des Werts als false
funktioniert ebenfalls:
vitest --no-api
vitest --api=false
changed
Typ:
boolean | string
Standard: 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~1
verwenden. Sie können auch Commit-Hash oder Branch-Namen übergeben.In Verbindung mit der Konfigurationsoption
forceRerunTriggers
wird die gesamte Testsuite ausgeführt, wenn eine Übereinstimmung gefunden wird.
shard
Typ:
string
Standard: deaktiviert
Testsuite-Shard, der im Format
<index>
/<count>
ausgeführt werden soll, wobeicount
eine positive ganze Zahl ist, die die Anzahl der Shards angibtindex
eine positive ganze Zahl ist, die den Index des Shards angibt
Dieser Befehl teilt alle Tests in
count
gleich 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).