VSCode でvscode-jestプラグインを導入すると、一々ターミナルでテストを実行しなくても、現在開いているテストファイルでテストケース毎にvscode-jest結果を表示してくれます。
debug モード
テストに失敗するとテストケースの前にx印が付きdebugというリンクが表示されます。これをクリックするとデバグモードでそのテストケースが実行されるので、簡単に詳細を調べれます。
monorepo プロジェクトで debug モードを使う
vscode-jestは各ワークスペースにあるnode_modules/jest/bin/jestを使おうとしますが、monorepo系のプロジェクトでは共通モジュールはまとめてワークスペースルートのnode_modulesへ入ってしまい、デフォルトではうまく動作しません。
これを解決するにはyarnのworkspaces設定にnohoist設定を追加します。nohoistにパッケージ名のパターンを置くことで、それにマッチするパッケージは各ワークスペースのnode_modulesへ置かれるようになります。
ということでpackage.jsonのworkspaces以下はこのようにします。
{
"workspaces": {
"packages": [
"..."
],
"nohoist": [
"**/jest"
]
}
}