Viteでテストが自動終了しないよぉ!!!
ネットによくある情報でViteでJestの実行環境をそのまま構築すると、以下の画像のようにテスト自体はそのまま実行されるのですが、画像の最終行の文章の通りqを入力しないとテストが終了しないことがあると思います。

原因:watchモードで実行されていたから
以下のようにpackage.jsonのscriptsでテストを実行すると、自動的にwatchモードが起動して自動終了しなくなります。
"scripts": {
"test": "vitest",
}
そもそもwatchモードって何?
公式ドキュメントによるとホットデプロイみたいなプロセスが走るモードです。
そのためホットデプロイが常に走るようになるため、テストが自動終了しなくなります。
【解決方法】runモードで実行する
runで実行するとテストが、自動終了するようになります。
"scripts": {
"test": "vitest run",
}
runモードって何?
公式ドキュメントによると、テストを1回だけ実行するモードです。
さいごに
今回はJestのテストを実行していましたが、Vitestが原因なのでJasmineやMochaでも同様なことが発生すると思います。
また、GitHubActionsではテストをvitestで動かしてもwatchモードから自動的にrunモードに切り替わるみたいですが、他のCIツールでは自動的に切り替わらない可能性があるため、最初からrunモードで動かしたほうがいいかもしれません。
