Jest CLI-Optionen
Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →
Der jest-Befehlszeilen-Runner bietet eine Reihe nützlicher Optionen. Du kannst jest --help ausführen, um alle verfügbaren Optionen anzuzeigen. Viele der unten gezeigten Optionen können auch kombiniert werden, um Tests genau nach deinen Vorstellungen auszuführen. Jede der Konfigurationsoptionen von Jest kann ebenfalls über die CLI angegeben werden.
Hier ist ein kurzer Überblick:
Ausführung über die Befehlszeile
Alle Tests ausführen (Standard):
jest
Nur Tests ausführen, die mit einem Muster oder Dateinamen angegeben wurden:
jest my-test #or
jest path/to/my-test.js
Tests für geänderte Dateien basierend auf hg/git ausführen (unversionierte Dateien):
jest -o
Tests für path/to/fileA.js und path/to/fileB.js ausführen:
jest --findRelatedTests path/to/fileA.js path/to/fileB.js
Tests ausführen, die mit diesem Spec-Namen übereinstimmen (vergleicht im Wesentlichen Namen in describe oder test).
jest -t name-of-spec
Watch-Modus starten:
jest --watch #runs jest -o by default
jest --watchAll #runs all tests
Im Watch-Modus kannst du auch einen Dateinamen oder -pfad angeben, um dich auf bestimmte Tests zu konzentrieren.
Verwendung mit Paketmanagern
Wenn du Jest über deinen Paketmanager ausführst, kannst du Befehlszeilenargumente trotzdem direkt als Jest-Argumente übergeben.
Anstatt:
jest -u -t="ColorPicker"
kannst du verwenden:
- npm
- Yarn
- pnpm
- Bun
npm test -- -u -t="ColorPicker"
yarn test -u -t="ColorPicker"
pnpm test -u -t="ColorPicker"
bun run test -u -t "ColorPicker"
Unterstützung für CamelCase- und Bindestrich-Argumente
Jest unterstützt sowohl CamelCase- als auch Bindestrich-Argumentformate. Die folgenden Beispiele erzielen dasselbe Ergebnis:
jest --collect-coverage
jest --collectCoverage
Argumente können auch gemischt werden:
jest --update-snapshot --detectOpenHandles
Optionen
CLI-Optionen haben Vorrang vor Werten aus der Konfiguration.
- Unterstützung für CamelCase- und Bindestrich-Argumente
- Optionen
- Referenz
jest <regexForTestFiles>--bail[=<n>]--cache--changedFilesWithAncestor--changedSince--ci--clearCache--clearMocks--collectCoverageFrom=<glob>--colors--config=<path>--coverage[=<boolean>]--coverageDirectory=<path>--coverageProvider=<provider>--debug--detectOpenHandles--env=<environment>--errorOnDeprecated--expand--filter=<file>--findRelatedTests <spaceSeparatedListOfSourceFiles>--forceExit--help--ignoreProjects <project1> ... <projectN>--init--injectGlobals--json--lastCommit--listTests--logHeapUsage--maxConcurrency=<num>--maxWorkers=<num>|<string>--noStackTrace--notify--onlyChanged--onlyFailures--openHandlesTimeout=<milliseconds>--outputFile=<filename>--passWithNoTests--projects <path1> ... <pathN>--randomize--reporters--resetMocks--restoreMocks--roots--runInBand--runTestsByPath--seed=<num>--selectProjects <project1> ... <projectN>--setupFilesAfterEnv <path1> ... <pathN>--shard--showConfig--showSeed--silent--testEnvironmentOptions=<json string>--testLocationInResults--testMatch glob1 ... globN--testNamePattern=<regex>--testPathIgnorePatterns=<regex>|[array]--testPathPattern=<regex>--testRunner=<path>--testSequencer=<path>--testTimeout=<number>--updateSnapshot--useStderr--verbose--version--watch--watchAll--watchman--workerThreads
Referenz
jest <regexForTestFiles>
Wenn du jest mit einem Argument ausführst, wird dieses Argument als regulärer Ausdruck behandelt, um Dateien in deinem Projekt zu finden. Du kannst Testsuiten ausführen, indem du ein Muster angibst. Nur Dateien, die dem Muster entsprechen, werden ausgewählt und ausgeführt. Je nach Terminal musst du dieses Argument möglicherweise in Anführungszeichen setzen: jest "my.*(complex)?pattern". Unter Windows musst du / als Pfadtrennzeichen verwenden oder \ als \\ maskieren.
--bail[=<n>]
Alias: -b. Beendet die Testsuite sofort bei n fehlgeschlagenen Testsuiten. Standardwert ist 1.
--cache
Aktiviert die Cache-Nutzung. Standardmäßig true. Deaktiviere den Cache mit --no-cache.
Der Cache sollte nur deaktiviert werden, wenn du Cache-bezogene Probleme hast. Im Durchschnitt ist Jest ohne Cache mindestens doppelt so langsam.
Um den Cache zu inspizieren, verwende --showConfig und suche nach dem cacheDirectory-Wert. Um den Cache zu leeren, verwende --clearCache.
--changedFilesWithAncestor
Führt Tests für aktuelle Änderungen und Änderungen im letzten Commit aus. Verhält sich ähnlich wie --onlyChanged.
--changedSince
Führt Tests für Änderungen seit dem angegebenen Branch oder Commit-Hash aus. Wenn der aktuelle Branch vom angegebenen Branch abgewichen ist, werden nur lokale Änderungen getestet. Verhält sich ähnlich wie --onlyChanged.
--ci
Wenn diese Option angegeben wird, geht Jest davon aus, dass es in einer CI-Umgebung läuft. Dies ändert das Verhalten bei neuen Snapshots: Anstatt automatisch einen neuen Snapshot zu speichern, schlägt der Test fehl und erfordert die Ausführung von Jest mit --updateSnapshot.
--clearCache
Löscht das Jest-Cache-Verzeichnis und beendet sich dann, ohne Tests auszuführen. Löscht cacheDirectory, wenn die Option übergeben wurde, oder das standardmäßige Jest-Cache-Verzeichnis. Das Standard-Cache-Verzeichnis kann durch Aufruf von jest --showConfig ermittelt werden.
Das Löschen des Caches verringert die Leistung.
--clearMocks
Löscht automatisch Mock-Aufrufe, Instanzen, Kontexte und Ergebnisse vor jedem Test. Entspricht dem Aufruf von jest.clearAllMocks() vor jedem Test. Entfernt keine Mock-Implementierungen, die möglicherweise bereitgestellt wurden.
--collectCoverageFrom=<glob>
Ein Glob-Muster relativ zu rootDir, das die Dateien abgleicht, für die Coverage-Informationen gesammelt werden sollen.
--colors
Erzwingt die Hervorhebung von Testergebnissen, auch wenn stdout kein TTY ist.
Alternativ können Sie die Umgebungsvariable FORCE_COLOR=true setzen, um die Farbausgabe zu erzwingen, oder FORCE_COLOR=false, um sie zu deaktivieren. FORCE_COLOR überschreibt alle anderen Farbunterstützungsprüfungen.
--config=<path>
Alias: -c. Der Pfad zu einer Jest-Konfigurationsdatei, die angibt, wie Tests gefunden und ausgeführt werden sollen. Wenn kein rootDir in der Konfiguration gesetzt ist, wird das Verzeichnis der Konfigurationsdatei als rootDir angenommen. Kann auch ein JSON-kodierter Wert sein, den Jest als Konfiguration verwendet.
--coverage[=<boolean>]
Alias: --collectCoverage. Gibt an, dass Testabdeckungsinformationen gesammelt und im Output berichtet werden sollen. Optional kann <boolean> übergeben werden, um konfigurierte Optionen zu überschreiben.
--coverageDirectory=<path>
Das Verzeichnis, in dem Jest seine Coverage-Dateien ausgeben soll.
--coverageProvider=<provider>
Legt den Provider fest, der zur Instrumentierung von Code für die Abdeckungsanalyse verwendet wird. Zulässige Werte sind babel (Standard) oder v8.
--debug
Gibt Debugging-Informationen über Ihre Jest-Konfiguration aus.
--detectOpenHandles
Versucht, offene Handles zu sammeln und auszugeben, die ein sauberes Beenden von Jest verhindern. Verwenden Sie dies in Fällen, in denen Sie --forceExit benötigen, um die Ursache zu ermitteln. Setzt --runInBand voraus, wodurch Tests seriell ausgeführt werden. Implementiert mit async_hooks. Diese Option hat erhebliche Leistungseinbußen und sollte nur zum Debuggen verwendet werden.
--env=<environment>
Die Testumgebung für alle Tests. Kann auf jede Datei oder jedes Node-Modul verweisen. Beispiele: jsdom, node oder path/to/my-environment.js.
--errorOnDeprecated
Lässt Aufrufe veralteter APIs mit hilfreichen Fehlermeldungen scheitern. Erleichtert Upgrades.
--expand
Alias: -e. Verwendet dieses Flag, um vollständige Diffs und Fehler anstelle eines Patches anzuzeigen.
--filter=<file>
Pfad zu einem Modul, das eine Filterfunktion exportiert. Diese asynchrone Funktion erhält eine Liste von Testpfaden, die manipuliert werden kann, um Tests von der Ausführung auszuschließen, indem ein Objekt der Form { filtered: Array<{ test: string }> } zurückgegeben wird. Besonders nützlich in Verbindung mit einer Testinfrastruktur, um bekannte fehlerhafte Tests zu filtern, z.B.
module.exports = testPaths => {
const allowedPaths = testPaths
.filter(filteringFunction)
.map(test => ({test})); // [{ test: "path1.spec.js" }, { test: "path2.spec.js" }, etc]
return {
filtered: allowedPaths,
};
};
--findRelatedTests <spaceSeparatedListOfSourceFiles>
Findet und führt Tests aus, die eine durch Leerzeichen getrennte Liste von übergebenen Quelldateien abdecken. Nützlich für Pre-Commit-Hooks, um nur die notwendigsten Tests auszuführen. Kann mit --coverage kombiniert werden, um Testabdeckung für die Quelldateien einzubeziehen – zusätzliche --collectCoverageFrom-Argumente sind nicht nötig.
--forceExit
Erzwingt das Beenden von Jest nach Abschluss aller Tests. Dies ist nützlich, wenn Ressourcen aus Testcode nicht ordnungsgemäß bereinigt werden können.
Diese Funktion ist eine Notlösung. Wenn Jest nach Testende nicht beendet wird, halten externe Ressourcen noch Verbindungen offen oder Timer laufen im Code weiter. Es wird empfohlen, externe Ressourcen nach jedem Test abzubauen, damit Jest sauber beenden kann. Verwenden Sie --detectOpenHandles zur Fehlersuche.
--help
Zeigt die Hilfsinformationen ähnlich dieser Seite an.
--ignoreProjects <project1> ... <projectN>
Ignoriert Tests der angegebenen Projekte. Jest identifiziert Projekte über das displayName-Attribut in der Konfiguration. Bei dieser Option müssen alle Projekte ein displayName haben.
--init
Erzeugt eine grundlegende Konfigurationsdatei. Basierend auf deinem Projekt stellt Jest einige Fragen, die helfen, eine jest.config.js-Datei mit kurzen Beschreibungen für jede Option zu generieren.
--injectGlobals
Fügt Jests Globals (expect, test, describe, beforeEach etc.) in die globale Umgebung ein. Bei false müssen Sie diese aus @jest/globals importieren, z.B.:
import {expect, jest, test} from '@jest/globals';
jest.useFakeTimers();
test('some test', () => {
expect(Date.now()).toBe(0);
});
Diese Option wird nur mit dem standardmäßigen jest-circus-Testrunner unterstützt.
--json
Gibt Testergebnisse als JSON aus. Andere Testausgaben und Benutzermeldungen werden an stderr gesendet.
--lastCommit
Führt alle durch den letzten Commit betroffenen Tests aus. Verhält sich ähnlich wie --onlyChanged.
--listTests
Listet alle Testdateien auf, die Jest mit den gegebenen Argumenten ausführen würde, und beendet sich.
--logHeapUsage
Protokolliert den Heap-Speicherverbrauch nach jedem Test. Nützlich zur Diagnose von Speicherlecks. Kombinieren Sie dies mit --runInBand und --expose-gc in Node.
--maxConcurrency=<num>
Begrenzt die gleichzeitige Ausführung von Tests auf die angegebene Anzahl. Betrifft nur Tests mit test.concurrent.
--maxWorkers=<num>|<string>
Alias: -w. Legt die maximale Anzahl der Worker-Prozesse für Testausführungen fest. Im Einmalmodus: Standardmäßig Anzahl der CPU-Kerne minus 1. Im Watch-Modus: Halbe verfügbare Kerne, um Systemüberlastung zu vermeiden. In ressourcenbeschränkten Umgebungen (wie CI) kann eine Anpassung sinnvoll sein, die Standardwerte sind jedoch für die meisten Fälle geeignet.
Bei variabler CPU-Verfügbarkeit können Sie prozentbasierte Konfiguration nutzen: --maxWorkers=50%
--noStackTrace
Deaktiviert Stack-Traces in Testergebnisausgaben.
--notify
Aktiviert Benachrichtigungen für Testergebnisse. Praktisch, wenn dein Bewusstsein sich auf nichts anderes als JavaScript-Tests konzentrieren soll.
--onlyChanged
Alias: -o. Führt nur Tests für geänderte Dateien aus (funktioniert nur in Git/Hg-Repositories mit statischen Abhängigkeiten).
--onlyFailures
Alias: -f. Führt nur im vorherigen Durchlauf fehlgeschlagene Tests aus.
--openHandlesTimeout=<milliseconds>
Wenn --detectOpenHandles und --forceExit deaktiviert sind, gibt Jest eine Warnung aus, wenn der Prozess nach dieser Anzahl von Millisekunden nicht sauber beendet wurde. Der Wert 0 deaktiviert die Warnung. Standardwert ist 1000.
--outputFile=<filename>
Schreibt Testergebnisse in eine Datei, wenn auch die Option --json angegeben ist. Die zurückgegebene JSON-Struktur ist in testResultsProcessor dokumentiert.
--passWithNoTests
Ermöglicht dem Testsuite das Bestehen, wenn keine Dateien gefunden wurden.
--projects <path1> ... <pathN>
Führt Tests von einem oder mehreren Projekten aus, die in den angegebenen Pfaden gefunden werden; akzeptiert auch Pfad-Globs. Diese Option entspricht der projects-Konfigurationsoption in der CLI.
Wenn Konfigurationsdateien in den angegebenen Pfaden gefunden werden, werden alle in diesen Konfigurationsdateien spezifizierten Projekte ausgeführt.
--randomize
Mischt die Reihenfolge der Tests innerhalb einer Datei. Die Mischung basiert auf dem Seed-Wert. Siehe --seed=<num> für weitere Informationen.
Der Seed-Wert wird angezeigt, wenn diese Option aktiviert ist. Entspricht dem Setzen der CLI-Option --showSeed.
jest --randomize --seed 1234
Diese Option wird nur mit dem standardmäßigen jest-circus-Testrunner unterstützt.
--reporters
Führt Tests mit den angegebenen Reportern aus. Reporter-Optionen sind über die CLI nicht verfügbar. Beispiel mit mehreren Reportern:
jest --reporters="default" --reporters="jest-junit"
--resetMocks
Setzt den Mock-Zustand vor jedem Test automatisch zurück. Entspricht dem Aufruf von jest.resetAllMocks() vor jedem Test. Entfernt gefälschte Implementierungen aus Mocks, stellt aber keine ursprünglichen Implementierungen wieder her.
--restoreMocks
Stellt automatisch vor jedem Test den ursprünglichen Zustand und die Implementierung von Mocks wieder her. Entspricht dem Aufruf von jest.restoreAllMocks() vor jedem Test. Dadurch werden Fälschungen entfernt und die Originalimplementierung wiederhergestellt.
--roots
Eine Liste von Verzeichnispfaden, in denen Jest nach Dateien suchen soll.
--runInBand
Alias: -i. Führt alle Tests seriell im aktuellen Prozess aus, anstatt einen Worker-Pool mit Kindprozessen zu erstellen. Dies kann für Debugging-Zwecke nützlich sein.
--runTestsByPath
Führt nur die Tests aus, die mit ihren exakten Pfaden angegeben wurden. Dies vermeidet die Konvertierung in einen regulären Ausdruck und den Abgleich mit jeder einzelnen Datei.
Beispielsweise bei folgender Dateistruktur:
__tests__
└── t1.test.js # test
└── t2.test.js # test
Bei Ausführung mit einem Muster wird kein Test gefunden:
jest --runTestsByPath __tests__/t
Ausgabe:
No tests found
Durch Übergabe eines exakten Pfads wird jedoch nur der angegebene Test ausgeführt:
jest --runTestsByPath __tests__/t1.test.js
Ausgabe:
PASS __tests__/t1.test.js
Die standardmäßige Regex-Abgleichung funktioniert gut bei kleinen Testläufen, wird jedoch langsam, wenn mehrere Muster angegeben werden und/oder gegen viele Tests abgeglichen wird. Diese Option ersetzt die Regex-Logik und optimiert so die Zeit, die Jest zum Filtern spezifischer Testdateien benötigt.
--seed=<num>
Setzt einen Seed-Wert, der in einer Testdatei über jest.getSeed() abgerufen werden kann. Der Seed-Wert muss zwischen -0x80000000 und 0x7fffffff inklusive liegen (-2147483648 (-(2 ** 31)) und 2147483647 (2 ** 31 - 1) in Dezimaldarstellung).
jest --seed=1324
Wenn diese Option nicht angegeben wird, generiert Jest den Wert zufällig. Mit dem Flag --showSeed können Sie den Seed in der Testzusammenfassung ausgeben lassen.
Jest verwendet den Seed intern zum Durchmischen der Ausführungsreihenfolge von Testsuites. Wenn die Option --randomize verwendet wird, dient der Seed auch zum Durchmischen der Testreihenfolge innerhalb jedes describe-Blocks. Bei flaky Tests kann eine Wiederholung mit demselben Seed helfen, den Fehler zu reproduzieren.
--selectProjects <project1> ... <projectN>
Führt die Tests der angegebenen Projekte aus. Jest identifiziert Projekte über das Attribut displayName in der Konfiguration. Wenn Sie diese Option verwenden, sollten Sie allen Projekten einen displayName zuweisen.
--setupFilesAfterEnv <path1> ... <pathN>
Eine Liste von Pfaden zu Modulen, die vor jedem Test Code zur Konfiguration oder Initialisierung des Testframeworks ausführen. Beachten Sie, dass von Setup-Skripts importierte Dateien während der Tests nicht gemockt werden.
--shard
Der auszuführende Testsuite-Shard im Format (?<shardIndex>\d+)/(?<shardCount>\d+).
shardIndex gibt an, welcher Shard ausgewählt wird, während shardCount die Gesamtzahl der Shards bestimmt, in die der Suite aufgeteilt wird.
shardIndex und shardCount müssen positive Ganzzahlen ab 1 sein, wobei shardIndex kleiner oder gleich shardCount sein muss.
Wenn shard angegeben ist, muss der konfigurierte testSequencer eine shard-Methode implementieren.
Beispiel zur Aufteilung der Suite in drei Shards, die jeweils ein Drittel der Tests ausführen:
jest --shard=1/3
jest --shard=2/3
jest --shard=3/3
--showConfig
Gibt Ihre Jest-Konfiguration aus und beendet Jest anschließend.
--showSeed
Gibt den Seed-Wert in der Testzusammenfassung aus. Siehe --seed=<num> für Details.
Kann auch in der Konfiguration gesetzt werden. Siehe showSeed.
--silent
Verhindert, dass Tests Nachrichten über die Konsole ausgeben.
--testEnvironmentOptions=<json string>
Ein JSON-String mit Optionen, die an die testEnvironment übergeben werden. Die relevanten Optionen hängen von der jeweiligen Umgebung ab.
--testLocationInResults
Fügt Testergebnissen ein location-Feld hinzu. Nützlich, wenn Sie den Ort eines Tests in einem Reporter melden möchten.
Im resultierenden Objekt ist column 0-basiert indexiert, während line nicht 0-basiert ist:
{
"column": 4,
"line": 5
}
--testMatch glob1 ... globN
Die Glob-Muster, die Jest zur Erkennung von Testdateien verwendet. Details finden Sie in der testMatch-Konfiguration.
--testNamePattern=<regex>
Alias: -t. Führt nur Tests aus, deren Name mit dem regulären Ausdruck übereinstimmt. Angenommen, Sie möchten nur Tests zur Autorisierung ausführen, die Namen wie 'GET /api/posts with auth' haben, dann können Sie jest -t=auth verwenden.
Der reguläre Ausdruck wird mit dem vollständigen Namen abgeglichen, der sich aus dem Testnamen und allen umgebenden describe-Blöcken zusammensetzt.
--testPathIgnorePatterns=<regex>|[array]
Einzelnes oder Array von Regex-Mustern, die vor der Testausführung gegen alle Testpfade geprüft werden. Im Gegensatz zu --testPathPattern werden nur Tests ausgeführt, deren Pfad nicht mit den angegebenen Regex-Ausdrücken übereinstimmt.
Um ein Array zu übergeben, verwenden Sie maskierte Klammern und durch Leerzeichen getrennte Regex-Ausdrücke wie \(/node_modules/ /tests/e2e/\). Alternativ können Sie Klammern weglassen, indem Sie Regex-Ausdrücke zu einem einzigen Muster kombinieren, z.B. /node_modules/|/tests/e2e/. Diese beiden Beispiele sind äquivalent.
--testPathPattern=<regex>
Ein Regex-Muster, das vor Testausführung gegen alle Testpfade geprüft wird. Unter Windows müssen Sie / als Pfadtrennzeichen verwenden oder \ als \\ maskieren.
--testRunner=<path>
Ermöglicht die Angang eines benutzerdefinierten Test-Runners.
--testSequencer=<path>
Ermöglicht die Angabe einer benutzerdefinierten Test-Sequenzierung. Details finden Sie in der testSequencer-Konfiguration.
--testTimeout=<number>
Standard-Timeout für einen Test in Millisekunden. Standardwert: 5000.
--updateSnapshot
Alias: -u. Verwendet diese Option, um jeden Snapshot neu aufzuzeichnen, der während dieses Testlaufs fehlschlägt. Kann mit einem Test-Suite-Muster oder mit --testNamePattern kombiniert werden, um Snapshots neu aufzuzeichnen.
--useStderr
Leitet die gesamte Ausgabe nach stderr um.
--verbose
Zeigt individuelle Testergebnisse mit der Test-Suite-Hierarchie an.
--version
Alias: -v. Gibt die Version aus und beendet das Programm.
--watch
Überwacht Dateien auf Änderungen und führt betroffene Tests erneut aus. Um bei Änderungen alle Tests neu auszuführen, verwenden Sie stattdessen die Option --watchAll.
Verwenden Sie --no-watch (oder --watch=false), um den Watch-Modus explizit zu deaktivieren, falls er mit --watch aktiviert wurde. In den meisten CI-Umgebungen wird dies automatisch für Sie gehandhabt.
--watchAll
Überwacht Dateien auf Änderungen und führt bei Änderungen alle Tests erneut aus. Um nur die von geänderten Dateien abhängigen Tests neu auszuführen, verwenden Sie die Option --watch.
Verwenden Sie --no-watchAll (oder --watchAll=false), um den Watch-Modus explizit zu deaktivieren, falls er mit --watchAll aktiviert wurde. In den meisten CI-Umgebungen wird dies automatisch für Sie gehandhabt.
--watchman
Ob watchman für das Durchsuchen von Dateien verwendet werden soll. Standardmäßig true. Deaktivieren mit --no-watchman.
--workerThreads
Legt fest, ob Worker-Threads für die Parallelisierung verwendet werden sollen. Standardmäßig werden Child Processes verwendet.
Dies ist eine experimentelle Funktion. Weitere Details finden Sie in der Konfigurationsoption workerThreads.