Zum Hauptinhalt springen
Version: Nächste

Jest CLI-Optionen

Inoffizielle Beta-Übersetzung

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 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

Hinweis

CLI-Optionen haben Vorrang vor Werten aus der Konfiguration.


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.

Vorsicht

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.

Vorsicht

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.

Hinweis

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 können, um Tests vom Ausführen auszuschließen, und muss ein Objekt der Form { filtered: Array<string> } zurückgeben, das die Tests enthält, die von Jest ausgeführt werden sollen. Besonders nützlich in Kombination mit Testinfrastrukturen zum Filtern bekannter defekter Tests.

my-filter.js
// This filter when applied will only run tests ending in .spec.js (not the best way to do it, but it's just an example):
const filteringFunction = testPath => testPath.endsWith('.spec.js');

module.exports = testPaths => {
const allowedPaths = testPaths.filter(filteringFunction); // ["path1.spec.js", "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.

Vorsicht

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.

--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);
});
Hinweis

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 systemeigene Benachrichtigungen für Testergebnisse. Ideal für fokussiertes Testen. Erfordert das separate Paket node-notifier.

--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.

Hinweis

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
Hinweis

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
Tipp

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
Tipp

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.

Hinweis

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.

Tipp

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]

Einzelner oder Array von Regex-Mustern, die vor Testausführung gegen alle Testpfade geprüft werden. Im Gegensatz zu --testPathPatterns 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.

--testPathPatterns=<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.

--waitForUnhandledRejections

Gibt dem Event-Loop einen Zyklus Zeit, um rejectionHandled, uncaughtException oder unhandledRejection zu behandeln.

Ohne dieses Flag könnte Jest falsch-positive Fehler melden (z.B. tatsächlich behandelte Rejections) oder echte unbehandelte Rejections nicht melden (oder falschen Tests zuordnen).

Diese Option kann bei schnellen Test-Suites spürbaren Overhead verursachen.

--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.

Tipp

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.

Tipp

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.

Vorsicht

Dies ist eine experimentelle Funktion. Weitere Details finden Sie in der Konfigurationsoption workerThreads.