本文へ移動
バージョン: 29.7

Jest CLI オプション

jestコマンドラインランナーには、多くの便利なオプションがあります。利用可能なすべてのオプションを表示するには、jest --helpを実行してください。以下に示す多くのオプションは、テストを希望どおりに実行するために組み合わせて使用することもできます。Jestの設定オプションはすべて、CLIからも指定できます。

概要

コマンドラインからの実行

すべてのテストを実行する(デフォルト)

jest

パターンまたはファイル名で指定されたテストのみを実行する

jest my-test #or
jest path/to/my-test.js

hg/gitに基づいて変更されたファイルに関連するテストを実行する(コミットされていないファイル)

jest -o

path/to/fileA.jspath/to/fileB.jsに関連するテストを実行する

jest --findRelatedTests path/to/fileA.js path/to/fileB.js

このスペック名と一致するテストを実行する(基本的に、describeまたはtest内の名前と照合する)。

jest -t name-of-spec

ウォッチモードを実行する

jest --watch #runs jest -o by default
jest --watchAll #runs all tests

ウォッチモードでは、特定のテストセットに焦点を当てるために、ファイルの名前またはパスを指定することもできます。

パッケージマネージャーとの使用

パッケージマネージャーを介してJestを実行する場合でも、コマンドライン引数をJest引数として直接渡すことができます。

代わりに

jest -u -t="ColorPicker"

を使用できます

npm test -- -u -t="ColorPicker"

キャメルケースとダッシュ付き引数のサポート

Jestは、キャメルケースとダッシュ付き引数の両方の形式をサポートしています。次の例は同じ結果になります。

jest --collect-coverage
jest --collectCoverage

引数は混合して使用することもできます。

jest --update-snapshot --detectOpenHandles

オプション

注記

CLIオプションは、設定からの値よりも優先されます。


参照

jest <regexForTestFiles>

引数を付けてjestを実行すると、その引数はプロジェクト内のファイルと照合する正規表現として扱われます。パターンを指定することで、テストスイートを実行できます。パターンに一致するファイルのみが取得され、実行されます。ターミナルによっては、この引数を引用符で囲む必要がある場合があります。例:jest "my.*(complex)?pattern"。Windowsでは、パスセパレータとして/を使用するか、\\\としてエスケープする必要があります。

--bail[=<n>]

エイリアス: -b。失敗したテストスイートがn個になった時点で、テストスイートをすぐに終了します。デフォルトは1です。

--cache

キャッシュを使用するかどうか。デフォルトはtrueです。--no-cacheを使用してキャッシュを無効にします。

注意

キャッシュ関連の問題が発生している場合を除き、キャッシュは無効にしないでください。平均して、キャッシュを無効にすると、Jestの速度が少なくとも2倍遅くなります。

キャッシュを検査する場合は、--showConfigを使用してcacheDirectoryの値を確認してください。キャッシュをクリアする必要がある場合は、--clearCacheを使用してください。

--changedFilesWithAncestor

現在の変更と最後のコミットで行われた変更に関連するテストを実行します。--onlyChangedと同様に動作します。

--changedSince

指定されたブランチまたはコミットハッシュ以降の変更に関連するテストを実行します。現在のブランチが指定されたブランチから分岐している場合、ローカルで行われた変更のみがテストされます。--onlyChangedと同様に動作します。

--ci

このオプションが指定されている場合、JestはCI環境で実行されていると想定します。これは、新しいスナップショットが検出された場合の動作を変更します。新しいスナップショットを自動的に保存するという通常の動作ではなく、テストに失敗し、--updateSnapshotを使用してJestを実行する必要があります。

--clearCache

Jestのキャッシュディレクトリを削除し、テストを実行せずに終了します。オプションが渡された場合、またはJestのデフォルトのキャッシュディレクトリが削除されます。デフォルトのキャッシュディレクトリは、jest --showConfigを呼び出すことで確認できます。

注意

キャッシュをクリアすると、パフォーマンスが低下します。

--clearMocks

各テストの前に、モック呼び出し、インスタンス、コンテキスト、結果を自動的にクリアします。各テストの前にjest.clearAllMocks()を呼び出すことと同等です。これは、提供されている可能性のあるモック実装を削除しません。

--collectCoverageFrom=<glob>

rootDirを基準としたglobパターンで、カバレッジ情報を収集する必要があるファイルに一致します。

--colors

stdoutがTTYでない場合でも、テスト結果の出力を強制的に強調表示します。

注記

あるいは、環境変数FORCE_COLOR=trueを設定して強制的に有効にしたり、FORCE_COLOR=falseを設定してカラー表示を無効にしたりすることもできます。FORCE_COLORの使用は、他のすべてのカラーサポートチェックよりも優先されます。

--config=<path>

エイリアス: -c。テストの検索と実行方法を指定するJest設定ファイルへのパス。設定にrootDirが設定されていない場合、設定ファイルを含むディレクトリがプロジェクトのrootDirと見なされます。これは、Jestが設定として使用するJSONエンコードされた値にすることもできます。

--coverage[=<boolean>]

エイリアス: --collectCoverage。テストカバレッジ情報を収集し、出力でレポートする必要があることを示します。オプションで<boolean>を渡して、設定で設定されたオプションを上書きできます。

--coverageDirectory=<path>

Jestがカバレッジファイルを書き出すディレクトリ。

--coverageProvider=<provider>

カバレッジのためにコードをインストルメントするために使用するプロバイダーを示します。許容される値はbabel(デフォルト)またはv8です。

--debug

Jestの設定に関するデバッグ情報を印刷します。

--detectOpenHandles

Jest のクリーンな終了を妨げているオープンハンドルを収集して出力しようとします。Jest を終了させるために --forceExit を使用する必要がある場合に、その原因を突き止めるために使用します。これは --runInBand を意味し、テストは直列に実行されます。async_hooks を使用して実装されています。このオプションはパフォーマンスに大きな影響を与えるため、デバッグ目的でのみ使用してください。

--env=<environment>

すべてのテストで使用されるテスト環境です。任意のファイルまたはノードモジュールを指定できます。例:jsdomnode、または path/to/my-environment.js

--errorOnDeprecated

非推奨の API を呼び出すと、役立つエラーメッセージがスローされるようにします。アップグレードプロセスを容易にするのに役立ちます。

--expand

エイリアス: -e。このフラグを使用すると、パッチではなく完全な差分とエラーが表示されます。

--filter=<file>

フィルタリング関数をエクスポートするモジュールへのパス。この非同期関数は、テストパスのリストを受け取り、{ filtered: Array<{ test: string }> } という形状のオブジェクトを返すことで、実行から除外するテストを操作できます。特に、既知の壊れたテストをフィルタリングするテストインフラストラクチャと組み合わせて使用する場合に便利です。例:

my-filter.js
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>

引数として渡されたソースファイルのスペース区切りリストをカバーするテストを検索して実行します。最小限のテストを実行するために、pre-commit フックの統合に役立ちます。ソースファイルのテストカバレッジを含めるために --coverage と一緒に使用できます。--collectCoverageFrom 引数を重複させる必要はありません。

--forceExit

すべてのテストの実行が完了したら、Jest を強制終了します。これは、テストコードによって設定されたリソースを適切にクリーンアップできない場合に役立ちます。

注意

この機能は緊急脱出用です。テスト実行の最後に Jest が終了しない場合、外部リソースが保持されているか、コード内でタイマーが保留されています。Jest がクリーンにシャットダウンできるように、各テスト後に外部リソースを破棄することをお勧めします。--detectOpenHandles を使用して追跡できます。

--help

このページと同様のヘルプ情報を表示します。

--ignoreProjects <project1> ... <projectN>

指定されたプロジェクトのテストを無視します。Jest は、構成内の属性 displayName を使用して各プロジェクトを識別します。このオプションを使用する場合は、すべてのプロジェクトに displayName を指定する必要があります。

--init

基本的な設定ファイルを作成します。プロジェクトに基づいて、Jest はいくつかの質問を行い、各オプションの簡単な説明を含む jest.config.js ファイルの作成に役立ちます。

--injectGlobals

Jest のグローバル変数(expecttestdescribebeforeEach など)をグローバル環境に挿入します。これを false に設定する場合は、@jest/globals からインポートする必要があります。例:

import {expect, jest, test} from '@jest/globals';

jest.useFakeTimers();

test('some test', () => {
expect(Date.now()).toBe(0);
});
注記

このオプションは、デフォルトの jest-circus テストランナーでのみサポートされています。

--json

テスト結果を JSON 形式で出力します。このモードでは、その他のすべてのテスト出力とユーザーメッセージは stderr に送信されます。

--lastCommit

直近のコミットで変更されたファイルに影響を受けるすべてのテストを実行します。--onlyChanged と同様に動作します。

--listTests

引数を指定して Jest が実行するすべてのテストファイルを一覧表示し、終了します。

--logHeapUsage

各テストの後、ヒープ使用量をログ出力します。メモリリークのデバッグに役立ちます。node では --runInBand--expose-gc と組み合わせて使用してください。

--maxConcurrency=<num>

Jest が同時に実行するテスト数を指定された数以上にしないようにします。test.concurrent を使用するテストのみに影響します。

--maxWorkers=<num>|<string>

エイリアス: -w。テストの実行のためにワーカープールが生成するワーカーの最大数を指定します。シングルランモードでは、これはマシンの利用可能なコア数からメインスレッド分の 1 を引いた数にデフォルト設定されます。ウォッチモードでは、Jest が邪魔にならず、マシンが停止しないように、利用可能なコア数の半分にデフォルト設定されます。CI などのリソースが限られた環境では調整する必要がある場合がありますが、デフォルト設定はほとんどのユースケースで適切です。

利用可能なCPUが可変である環境では、パーセンテージベースの設定を使用できます:--maxWorkers=50%

--noStackTrace

テスト結果出力でのスタックトレースを無効にします。

--notify

テスト結果の通知を有効にします。JavaScript テスト以外のことに意識を集中させたくない場合に便利です。

--onlyChanged

エイリアス: -o。現在のリポジトリでどのファイルが変更されたかに基づいて、実行するテストを特定しようとします。現在 git/hg リポジトリでテストを実行している場合にのみ機能し、静的な依存関係グラフ(つまり、動的な require はない)が必要です。

--openHandlesTimeout=<milliseconds>

--detectOpenHandles--forceExit無効になっている場合、このミリ秒数後にプロセスがクリーンに終了しなかった場合、Jest は警告を出力します。0 の値は警告を無効にします。デフォルトは 1000 です。

--outputFile=<filename>

--json オプションも指定されている場合、テスト結果をファイルに書き込みます。返される JSON 構造は、testResultsProcessor で説明されています。

--passWithNoTests

ファイルが見つからない場合でも、テストスイートがパスするようにします。

--projects <path1> ... <pathN>

指定されたパスにある 1 つ以上のプロジェクトからテストを実行します。パスグロブも受け付けます。このオプションは、projects 設定オプションの CLI 同等物です。

注記

指定されたパスに設定ファイルが見つかった場合、それらの設定ファイルに指定されているすべてのプロジェクトが実行されます。

--randomize

ファイル内のテストの順序をシャッフルします。シャッフルはシードに基づいています。--seed=<num> を参照してください。

このオプションが設定されている場合、シード値が表示されます。--showSeed CLI オプションの設定と同等です。

jest --randomize --seed 1234
注記

このオプションは、デフォルトの jest-circus テストランナーでのみサポートされています。

--reporters

指定されたレポーターを使用してテストを実行します。レポーターオプション は CLI では使用できません。複数のレポーターを使用した例

jest --reporters="default" --reporters="jest-junit"

--resetMocks

各テストの前にモックの状態を自動的にリセットします。各テストの前に jest.resetAllMocks() を呼び出すことと同等です。これにより、モックの偽の実装は削除されますが、初期の実装は復元されません。

--restoreMocks

各テストの前にモックの状態と実装を自動的に復元します。各テストの前に jest.restoreAllMocks() を呼び出すことと同等です。これにより、モックの偽の実装は削除され、初期の実装が復元されます。

--roots

Jest がファイルの検索に使用するディレクトリのパスリスト。

--runInBand

エイリアス: -i。テストを実行する子プロセスのワーカープールを作成するのではなく、現在のプロセスですべてのテストを直列に実行します。デバッグに役立ちます。

--runTestsByPath

正確なパスで指定されたテストのみを実行します。これにより、正規表現に変換してすべてのファイルと照合する必要がなくなります。

例えば、次のファイル構造の場合

__tests__
└── t1.test.js # test
└── t2.test.js # test

パターンを使用して実行すると、テストは見つかりません

jest --runTestsByPath __tests__/t

出力

No tests found

ただし、正確なパスを渡すと、指定されたテストのみが実行されます

jest --runTestsByPath __tests__/t1.test.js

出力

PASS __tests__/t1.test.js
ヒント

デフォルトの正規表現マッチングは小規模な実行では問題ありませんが、複数のパターンが提供されている場合や、多くのテストに対しては遅くなります。このオプションは正規表現マッチングロジックを置き換えることで、Jest が特定のテストファイルをフィルタリングする時間を最適化します。

--seed=<num>

テストファイルでjest.getSeed() を介して取得できるシード値を設定します。シード値は、-0x80000000 から 0x7fffffff の範囲内(10進数で -2147483648 (-(2 ** 31)) から 2147483647 (2 ** 31 - 1))でなければなりません。

jest --seed=1324
ヒント

このオプションを指定しない場合、Jestはランダムに値を生成します。テストレポートのサマリーにシード値を表示するには、--showSeed フラグを使用します。

--selectProjects <project1> ... <projectN>

指定されたプロジェクトのテストを実行します。Jestは、構成内の属性displayNameを使用して各プロジェクトを識別します。このオプションを使用する場合は、すべてのプロジェクトにdisplayNameを指定する必要があります。

--setupFilesAfterEnv <path1> ... <pathN>

各テストの前に、テストフレームワークの設定または設定を行うコードを実行するモジュールのパスの一覧です。セットアップスクリプトによってインポートされたファイルは、テスト中はモックされません。

--shard

(?<shardIndex>\d+)/(?<shardCount>\d+)の形式で実行するテストスイートのシャードです。

shardIndexは選択するシャードを示し、shardCountはスイートを分割するシャードの数を制御します。

shardIndexshardCountは、1以上の正の数でなければならず、shardIndexshardCount以下でなければなりません。

shardが指定されている場合、構成済みのtestSequencershardメソッドを実装する必要があります。

たとえば、スイートを3つのシャードに分割し、それぞれがテストの3分の1を実行するには

jest --shard=1/3
jest --shard=2/3
jest --shard=3/3

--showConfig

Jestの設定を出力して終了します。

--showSeed

テストレポートのサマリーにシード値を出力します。--seed=<num>の詳細を参照してください。

設定でも設定できます。showSeedを参照してください。

--silent

テストがコンソールにメッセージを出力することを防ぎます。

--testEnvironmentOptions=<json string>

testEnvironmentに渡されるオプションを含むJSON文字列です。関連するオプションは環境によって異なります。

--testLocationInResults

テスト結果にlocationフィールドを追加します。レポーターでテストの位置を報告する場合に便利です。

注記

結果のオブジェクトでは、columnは0から始まるインデックスで、lineは0から始まりません。

{
"column": 4,
"line": 5
}

--testMatch glob1 ... globN

Jestがテストファイルの検出に使用するglobパターンです。詳細については、testMatch設定を参照してください。

--testNamePattern=<regex>

エイリアス: -t。正規表現に一致する名前のテストのみを実行します。たとえば、名前が'GET /api/posts with auth'のような認証に関連するテストのみを実行する場合は、jest -t=authを使用できます。

ヒント

正規表現は、テスト名とその周囲のすべてのdescribeブロックを組み合わせた完全名に対して照合されます。

--testPathIgnorePatterns=<regex>|[array]

テストを実行する前に、すべてのテストパスに対してテストされる正規表現パターンの文字列、またはその配列です。--testPathPatternとは異なり、提供された正規表現と一致しないパスを持つテストのみを実行します。

配列として渡すには、エスケープされた括弧とスペース区切りの正規表現(例:\(/node_modules/ /tests/e2e/\))を使用します。あるいは、/node_modules/|/tests/e2e/のように正規表現を1つの正規表現に結合することで、括弧を省略することもできます。これら2つの例は同等です。

--testPathPattern=<regex>

テストを実行する前に、すべてのテストパスに対して照合される正規表現パターンの文字列です。Windowsでは、パスセパレーターとして/を使用するか、\\\としてエスケープする必要があります。

--testRunner=<path>

カスタムテストランナーを指定できます。

--testSequencer=<path>

カスタムテストシーケンサーを指定できます。詳細については、testSequencer設定を参照してください。

--testTimeout=<number>

テストのデフォルトのタイムアウト時間(ミリ秒単位)。デフォルト値:5000。

--updateSnapshot

エイリアス: -u。このテスト実行中に失敗したすべてのスナップショットを再記録するには、このフラグを使用します。テストスイートパターンまたは--testNamePatternと共に使用して、スナップショットを再記録できます。

--useStderr

すべての出力をstderrにリダイレクトします。

--verbose

テストスイート階層を含む個々のテスト結果を表示します。

--version

エイリアス: -v。バージョンを出力して終了します。

--watch

ファイルの変更を監視し、変更されたファイルに関連するテストを再実行します。ファイルが変更されたときにすべてのテストを再実行する場合は、代わりに--watchAllオプションを使用します。

ヒント

--watchを使用して監視モードを有効にした場合、明示的に監視モードを無効にするには--no-watch(または--watch=false)を使用します。ほとんどのCI環境では、これは自動的に処理されます。

--watchAll

ファイルの変更を監視し、何かが変更されたときにすべてのテストを再実行します。変更されたファイルに依存するテストのみを再実行する場合は、--watchオプションを使用します。

ヒント

--watchAllを使用して監視モードを有効にした場合、明示的に監視モードを無効にするには--no-watchAll(または--watchAll=false)を使用します。ほとんどのCI環境では、これは自動的に処理されます。

--watchman

ファイルクロールにwatchmanを使用するかどうか。デフォルトはtrueです。--no-watchmanを使用して無効にします。

--workerThreads

並列化にワーカーのスレッドを使用するかどうか。子プロセスがデフォルトで使用されます。

注意

これは実験的な機能です。workerThreads設定オプションの詳細を参照してください。