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