単一のJestテストを実行するための完全なコマンド
コマンド:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:
- ウィンドウズ:
node_modules\jest\bin\jest.js
- その他:
node_modules/.bin/jest
-i <you-test-file>
:テストを含むファイルへのパス(js
またはts
)
-c <jest-config>
:別のJest構成ファイル(JSON)へのパス。Jest構成を保持している場合、package.json
このパラメーターを指定する必要はありません(Jestはユーザーの助けなしにそれを見つけます)
-t <the-name-of-test-block>
:実際には、名前(最初のパラメータ)のだdescribe(...)
、it(...)
またはtest(...)
ブロック。
例:
describe("math tests", () => {
it("1 + 1 = 2", () => {
expect(1 + 1).toBe(2);
});
it("-1 * -1 !== -1", () => {
expect(-1 * -1).not.toBe(-1);
});
});
したがって、コマンド
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
はテストしit("1 + 1 = 2", ...)
ますが、-t
パラメーターをに変更すると"math tests"
、describe("math tests",...)
ブロックから両方のテストが実行されます。
備考:
- Windowsの場合置き換える
node_modules/.bin/jest
とnode_modules\jest\bin\jest.js
。
- このアプローチでは、実行中のスクリプトをデバッグできます。デバッグを有効にする
'--inspect-brk'
には、コマンドにパラメーターを追加します。
'package.json'のNPMスクリプトを介して単一のJestテストを実行する
Jestをインストールすると、NPMスクリプトを使用して、このコマンドの構文(上記)を簡略化できます。中には、"package.json"
新しいスクリプトを追加"scripts"
セクション:
"scripts": {
"test:math": "jest -i test/my-tests.js -t \"math tests\"",
}
この場合、'jest'
フルパスではなくエイリアスを使用します。また、設定ファイルのパスも指定しないでください"package.json"
。Jestはデフォルトでこのファイルを確認することができます。これでコマンドを実行できます:
npm run test:math
そして"math tests"
二つの試験でのブロックが実行されます。または、もちろん、特定のテストを名前で指定することもできます。
別のオプションは<the-name-of-test-block>
、"test:math"
スクリプトの外にパラメーターをプルし、それをNPMコマンドから渡すことです。
package.json:
"scripts": {
"test:math": "jest -i test/my-tests.js -t",
}
コマンド:
npm run test:math "math tests"
これで、はるかに短いコマンドで実行テストの名前を管理できます。
備考:
'jest'
コマンドがあるためNPMスクリプトで動作します
npmは"./node_modules/.bin"
、PATH
ライフサイクルスクリプトを実行するときに環境変数に最初のエントリを作成するため、プログラムがグローバルにインストールされていなくても、これは正常に機能します(NPMブログ)
- Jestは経由ではなく、バイナリ/ CLI経由で実行されるため、このアプローチではデバッグができないようです
node
。
Visual Studio Codeで選択したJestテストを実行する
Visual Studio Codeを使用している場合は、それを利用して、F5
ボタンを押すことで(コードエディターで)現在選択されているテストを実行できます。これを行うには、ファイルに新しい起動構成ブロックを作成する必要があり".vscode/launch.json"
ます。その構成では、実行時に適切な(残念ながら常にではない)値で置き換えられる定義済み変数を使用します。利用可能なすべてのうち、私たちはこれらにのみ興味があります:
${relativeFile}
-現在開いているファイル
${workspaceFolder}
${selectedText}
-アクティブなファイルで現在選択されているテキスト
しかし、起動設定を書き込む前に、'test'
スクリプトを追加する必要があります'package.json'
(まだない場合)。
package.json:
"scripts": {
"test": "jest"
}
その後、起動構成で使用できます。
起動構成:
{
"type": "node",
"request": "launch",
"name": "Run selected Jest test",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"test"
],
"args": [
"--",
"-i",
"${relativeFile}",
"-t",
"${selectedText}"
],
"console": "integratedTerminal",
}
実際には、この回答の前半で説明したコマンドと同じです。すべての準備が整ったので、コマンドパラメータを手動で書き直すことなく、必要なテストを実行できます。
ここにあなたがする必要があるすべてがあります:
- デバッグパネルで現在作成されている起動構成を選択します。
- コードエディターでテストを含むファイルを開き、テストするテストの名前(引用符なし)を選択します。
'F5'
ボタンを押します。
そして出来上がり!
必要なテストを実行するには、エディターでテストを開き、その名前を選択してF5キーを押します。
残念ながら、Windowsマシンでは${relativeFile}
変数が(理由を知っている)逆スラッシュのパスに置き換えられ、Jestはそのようなパスを理解できないため、Windowsマシンでは「出来上がり」にはなりません。
備考:
- デバッガーの下で実行するには、
'--inspect-brk'
パラメーターを追加することを忘れないでください。
- この設定例では、Jest設定パラメーターはに含まれていると想定していません
'package.json'
。