LoginSignup
1
0

More than 1 year has passed since last update.

【Vite】テストが自動終了しない!!!

Last updated at Posted at 2022-10-15

Viteでテストが自動終了しないよぉ!!!

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

原因:watchモードで実行されていたから

以下のようにpackage.jsonscriptsでテストを実行すると、自動的にwatchモードが起動して自動終了しなくなります。

package.json
  "scripts": {
    "test": "vitest",
  }

そもそもwatchモードって何?

公式ドキュメントによるとホットデプロイみたいなプロセスが走るモードです。
そのためホットデプロイが常に走るようになるため、テストが自動終了しなくなります。

原文

Run all test suites but watch for changes and rerun tests when they change. Same as calling vitest without a command. In CI environments this command will fallback to vitest run

Deeplで日訳した文章

すべてのテストスイートを実行するが、変更を監視し、変更されたときにテストを再実行する。コマンドなしでvitestを呼び出すのと同じです。CI環境では、このコマンドはvitest runにフォールバックする。

【解決方法】runモードで実行する

runで実行するとテストが、自動終了するようになります。

package.json
  "scripts": {
    "test": "vitest run",
  }

ezgif-3-0a639c74dd.gif

runモードって何?

公式ドキュメントによると、テストを1回だけ実行するモードです。

原文

Perform a single run without watch mode.

Deeplで日訳した文章

ウォッチモードを使用しないシングルランを実行します。

さいごに

今回はJestのテストを実行していましたが、Vitestが原因なのでJasmineやMochaでも同様なことが発生すると思います。
また、GitHubActionsではテストをvitestで動かしてもwatchモードから自動的にrunモードに切り替わるみたいですが、他のCIツールでは自動的に切り替わらない可能性があるため、最初からrunモードで動かしたほうがいいかもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0