Jest
Jest は、クライアント側の JavaScript アプリケーションおよび特に React アプリケーション向けのテストプラットフォームです。 プラットフォームの詳細については、 Jest(英語) の公式 Web サイトを参照してください。
PyCharm で Jest を使ってテストの実行やデバッグができます。 テスト結果はツリービューで確認でき、そこからテストソースに簡単に移動できます。 テストのステータスは、エディターでテストの横に表示され、すぐに実行したりデバッグすることができます。
始める前
お使いのコンピューターに Node.js(英語) がインストールされていることを確認してください。
設定で JavaScript and TypeScript プラグインが有効になっていることを確認します。 Ctrl+Alt+S を押して設定を開き、 を選択します。 インストール済み タブをクリックします。 検索フィールドに JavaScript and TypeScript と入力します。 プラグインの詳細については、 Managing plugins を参照してください。
Jest をインストールして構成する
組み込み ターミナル (Alt+F12) で次のように入力します。
npm install --save-dev jest
Jest 公式 Web サイトで オンラインドキュメント(英語)および Jest の設定(英語)の詳細を参照してください。
テストの実行
PyCharm を使用すると、エディターから単一の Jest テストを素早く実行したり、テストの一部または全部を実行するための実行 / デバッグ構成を作成できます。
JavaScript および TypeScript コード用の Vitest テスト作成の詳細については、Vitest 公式サイトの Vitest features を参照してください。
エディターから単一のテストを実行する
ガターで
または
をクリックし、リストから 実行 <test_name> を選択します。

エディターでテストが合格または失敗したかどうかは、ガターの テストステータス アイコン
および
で確認できます。
プロジェクトツールウィンドウからフォルダー内のすべてのテストを実行する
In the Project tool window (Alt+1) , select the folder with the tests, and then select 'Tests in <フォルダー名>' の実行。

Jest 実行構成を作成する
実行 / デバッグ構成ダイアログ (メインメニューの ) を開き、左側のペインで
をクリックし、リストから Jest を選択します。 Run/Debug Configuration: Jest ダイアログが開きます。
使用する Node.js ランタイムを指定します。
Project エイリアスを選択すると、PyCharm は ノードランタイム フィールドがある JavaScript ランタイムページのプロジェクトのデフォルトインタープリターを自動的に使用します。 ほとんどの場合、PyCharm はプロジェクトのデフォルトランタイムを検出し、そのフィールドに自動で入力します。
別の構成済みのローカルインタープリターまたはリモートインタープリターを選択するか、
をクリックして新しいインタープリターを構成することもできます。
jest、 react-scripts、 react-script-ts、 react-super-scripts、 react-awesome-scripts パッケージの場所を指定します。
アプリケーションの作業ディレクトリを指定します。 デフォルトでは、 作業ディレクトリ フィールドにはプロジェクトのルートフォルダーが表示されます。 この事前定義された設定を変更するには、目的のフォルダーへのパスを指定してください。
実行するテストを指定します。 これは、特定のテストまたはスイート、テストファイル全体、テストファイルを含むフォルダーにすることができます。
オプション:
使用する jest.config.js または jest.config.ts ファイルを指定してください:リストから目的のファイルを選択するか、
をクリックして開いたダイアログで選択、またはフィールドにパスを入力します。
フィールドが空の場合、PyCharm は package.json ファイルで
jestキーがあるかを探します。 検索は、 作業ディレクトリから上に向かってファイルシステムで実行されます。 適切な package.json ファイルが見つからない場合、 Jest のデフォルト設定(英語)がオンザフライで生成されます。オプション:
関連するソースファイルの変更時に自動的に再実行されるテストを構成します。 これを行うには、 Jest オプション フィールドに
--watchフラグを追加します。テストセッション中に 実行 ツールウィンドウの 変更の監視 トグルボタンを押して、後で ウォッチモードをオンにすることもできます。以下の 変更時にテストを自動的に再実行する (ウォッチモード)を参照してください。
オプション:
コマンドを実行するための環境変数を指定します。 PyCharm は、
process.envの補完リストにこれらの変数を表示します。
Node オプション フィールドに、必要に応じて、Node.js 実行可能ファイルに渡される Node.js 固有のコマンドラインオプションを入力します。 許容されるオプションは次のとおりです。
実行中に CoffeeScript ファイルをオンザフライで JavaScript にコンパイルするには、
--require coffeescript/registerを使用します。このモードでは、
coffeescriptパッケージの一部である register.js ファイルがプロジェクト内に配置されている必要があります。 そのため、 CoffeeScript コンパイラーのインストールの説明に従って、coffeescriptパッケージがローカルにインストールされていることを確認してください。Chrome デバッグプロトコル(英語)サポートには
--inspectまたは--inspect-brkパラメーターを使用します。プロジェクトで ECMAScript モジュール(英語)を使用するには、
—experimental-vm-modulesフラグを Node オプション フィールドに追加します。
実行構成を介してテストを実行する
構成のリストから Jest 実行 / デバッグ構成を選択し、リストまたはツールバーの
をクリックします。
実行 ツールウィンドウの テストランナー タブで、テストの実行を監視し、テスト結果を分析します。 詳細については、 テスト結果の調査を参照してください。
失敗したテストの再実行
テスト結果ツールバーの
をクリックします。 PyCharm は前回のセッションで失敗したすべてのテストを実行します。
特定の失敗したテストを再実行するには、そのコンテキストメニューで を選択します。
詳細は、 テストの再実行を参照してください。
変更時にテストを自動的に再実行する (ウォッチモード)
PyCharm は、テスト関連ファイルに変更があるとすぐにテストを自動で再実行する watch モードをサポートしています。 その結果、手動でテストを再実行したり、 Jest 実行 / デバッグ構成を再起動したりすることなく、コードに変更を加えるだけで済みます。
Test Runner タブで、 変更の監視 トグルボタンを押します。

あるいは、実行/デバッグ構成の Jest オプション フィールドに
--watchフラグを追加し、上記の Jest 実行構成を作成するを参照してください。
ナビゲーション
PyCharm を使用すると、ファイルと関連するテストファイル間、または Test Runner タブのテスト結果からテストへジャンプできます。
PyCharm を使用すると、ファイルと関連するテストファイル間、およびテストまたはスイート定義と Test Runner タブ内の結果の間を移動できます。
テストとそのサブジェクト間、またはその逆に移動するには、エディターでファイルを開き、コンテキストメニューから または を選択するか、 Ctrl+Shift+T を押します。
テスト結果からテスト定義に移動するには、「テストランナー 」タブでテスト名を 2 回クリックするか、コンテキストメニューから「 」を選択するか、単に F4 を押します。 テストファイルがエディターで開き、テスト定義にキャレットが置かれます。
テストまたはスイートの定義から テストランナー タブの結果に移動するには、ガターで
または
をクリックし、リストから テストツリーで <test_name> を選択する を選択します。

失敗したテストの場合、PyCharm はスタックトレースからテストの失敗行へ移動します。 正確な行がスタックトレースにない場合は、テスト定義に移動します。

スナップショットテスト
PyCharm と Jest の連携はスナップショットテストのような優れた機能をサポートしています。
.toMatchSnapshot() メソッドでテストを実行すると、Jest は __snapshots__ フォルダーにスナップショットファイルを作成します。 テストから関連するスナップショットに移動するには、テストの横のガターで をクリックするか、
.toMatchSnapshot() メソッドのコンテキストメニューから必要なスナップショットを選択します。

スナップショットがレンダリングされたアプリケーションと一致しない場合、テストは失敗します。 これは、コードの一部の変更によりこの不一致が発生したか、スナップショットが古いため更新する必要があることを示しています。
この不一致の原因を確認するには、 テストランナー タブの右側のペインにある 差分を見るにはクリックする リンクから PyCharm 組み込みの 差分ビューアーを開きます。

実行 ツールウィンドウの テストランナー タブから、古いスナップショットを直接更新できます。
特定のテストのスナップショットを更新するには、テスト名の横にある クリックしてスナップショットを更新する リンクを使用します。
テストの古いスナップショットをすべてファイルから更新するには、テストファイル名の横にある クリックして失敗したスナップショットを更新する を使用します。

デバッグテスト
PyCharm を使用すると、エディターから単一の Jest テストのデバッグを素早く開始したり、テストの一部または全部をデバッグするための実行 / デバッグ構成を作成できます。
必要に応じて ブレークポイントを設定します。
エディターから単一のテストのデバッグを開始するには、ガターで
または
をクリックし、リストから デバッグ <test_name> を選択します。
フォルダー内のすべてのテストのデバッグを開始するには、 Project ツールウィンドウでフォルダーを選択し、コンテキストメニューから 'Tests in <フォルダー名>' のデバッグ を選択します。

実行 / デバッグ構成を介してテストデバッグを開始するには、 上記の説明に従ってJest 実行 / デバッグ構成を作成します。
次に、構成のリストから Jest 実行 / デバッグ構成を選択し、リストまたはツールバーの
をクリックします。
開いた デバッグツールウィンドウ で通常どおり操作できます: プログラムをステップ実行、 実行の停止および再開、 中断時の調査 、コールスタックや変数の調査、ウォッチの設定、変数の評価、 実際の HTML DOM の表示など。
コードカバレッジを監視する
PyCharm では、コードがどれだけ Jest テストでカバーされているかも監視できます。 PyCharm は、この統計情報を専用の カバレッジ ツールウィンドウに表示し、カバーされた行とカバーされていない行をエディターおよび Project ツールウィンドウ(Alt+1 )で視覚的にマークします。
カバレッジでテストを実行する
上記のように Jest 実行 / デバッグ構成を作成します。
メインツールバーのリストから Jest 実行 / デバッグ構成を選択し、リストの右側にある
をクリックします。
または、エディターからカバレッジ付きで特定のスイートまたはテストをすばやく実行できます。ガターで
または
をクリックし、リストから カバレッジで <test_name> を実行する を選択します。

カバレッジツールウィンドウでコードカバレッジを監視します。 このレポートには、テストでカバーされたファイルの数と、その中にカバーされている行の割合が表示されます。 レポートから、ファイルに移動して、どの行が覆われていたか(緑色にマーキングされているか、どの行が覆われていないか)、赤色に表示されているかを確認できます。

Docker コンテナー内の Node.js で Jest テストを実行する
PyCharm を使えば、ローカルで実行するのと同じ方法で Docker コンテナー内で Jestテストを実行できます。
始める前
Node.js および Node.js リモートインタープリター の各プラグインを、 設定 | プラグイン ページ・ マーケットプレース タブで、 JetBrains マーケットプレイスからプラグインをインストール の説明どおりに導入してください。
設定で Docker プラグインが有効になっていることを確認します。 Ctrl+Alt+S を押して設定を開き、 を選択します。 インストール済み タブをクリックします。 検索フィールドに Docker と入力します。 プラグインの詳細については、 Managing plugins を参照してください。
Docker をダウンロード、インストールし、 Docker の説明に従って設定してください。
Docker で Node.js リモートランタイムを構成するまたは Docker Compose 経由でインストールし、プロジェクトの デフォルトとして設定してください。 また、このリモートランタイムに関連付けられたパッケージマネージャーが プロジェクトのデフォルトとして設定されていることを確認してください。
package.json を開き、Jest が
devDependenciesセクションにリストされていることを確認します。{ "name": "node-express", "version": "0.0.0", "private": true, "dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "http-errors": "~1.6.3", "morgan": "~1.9.1", "pug": "^3.0.2" }, "devDependencies": { "eslint": "^8.1.0", "http-server": "^14.0.0", "jest": "^27.3.1" } }エディターの任意の場所を右クリックして、コンテキストメニューから 実行 '<package manager> install' を選択します。
テストの実行
Jest オフィシャル Web サイト(英語)の指示に従ってテストを作成します。
ローカル開発と同様に操作してください。エディターから単一テストの実行やデバッグ、または上記の テストの実行 および テストのデバッグのように、テストの一部またはすべてを起動するための実行 / デバッグ構成を作成できます。