vscode-jest

VSCode でvscode-jestプラグインを導入すると、一々ターミナルでテストを実行しなくても、現在開いているテストファイルでテストケース毎に結果を表示してくれます。

debug モード

テストに失敗するとテストケースの前にx印が付きdebugというリンクが表示されます。これをクリックするとデバグモードでそのテストケースが実行されるので、簡単に詳細を調べれます。

monorepo プロジェクトで debug モードを使う

vscode-jestは各ワークスペースにあるnode_modules/jest/bin/jestを使おうとしますが、monorepo系のプロジェクトでは共通モジュールはまとめてワークスペースルートのnode_modulesへ入ってしまい、デフォルトではうまく動作しません。

これを解決するにはyarnworkspaces設定にnohoist設定を追加します。nohoistにパッケージ名のパターンを置くことで、それにマッチするパッケージは各ワークスペースのnode_modulesへ置かれるようになります。

ということでpackage.jsonworkspaces以下はこのようにします。

{
  "workspaces": {
    "packages": [
      "..."
    ],
    "nohoist": [
      "**/jest"
    ]
  }
}