コンテンツへスキップ

一般的なエラー

モジュール「./relative-path」が見つかりません

モジュールが見つからなかったというエラーを受信した場合は、いくつかの異なる意味がある可能性があります

    1. パスにスペルミスがあります。パスが正しいことを確認してください。
    1. tsconfig.jsonbaseUrl を使用している可能性があります。Vite はデフォルトで tsconfig.json を考慮しないため、この動作に依存している場合は vite-tsconfig-paths を自分でインストールする必要があります。
ts
import { defineConfig } from 'vitest/config'
import tsconfigPaths from 'vite-tsconfig-paths'

export default defineConfig({
  plugins: [tsconfigPaths()]
})

または、パスをルートに対する相対パスにしないように書き換えます

diff
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
    1. 相対的な エイリアス がないことを確認してください。Vite はそれらをインポート先ファイルに対する相対パスとして扱い、ルートに対する相対パスではありません。
ts
import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    alias: {
      '@/': './src/', 
      '@/': new URL('./src/', import.meta.url).pathname, 
    }
  }
})

モジュール「./mocked-file.js」は既にロードされているためモックできません

このエラーは、vi.mock メソッドが既に読み込まれたモジュールに対して呼び出されたときに発生します。Vitest は、キャッシュされたモジュールが優先されるため、この呼び出しに効果がないため、このエラーをスローします。

vi.mock は常にホイスティングされることを覚えておいてください。つまり、テストファイルの実行が開始される前にモジュールが読み込まれます。ほとんどの場合、設定ファイルです。エラーを修正するには、インポートを削除するか、設定ファイルの最後にキャッシュをクリアします。設定ファイルとテストファイルでその場合異なるモジュールが参照されることに注意してください。

ts
// setupFile.js
import { vi } from 'vitest'
import { sideEffect } from './mocked-file.js'

sideEffect()

vi.resetModules()

ワーカーの終了に失敗しました

このエラーは、NodeJS の fetch がデフォルトの pool: 'threads' で使用されている場合に発生する可能性があります。この問題は問題 タイムアウトの解除により、プロセスがバックグラウンドで実行されたままになる #3077 で追跡されています。

回避策として、pool: 'forks' または pool: 'vmForks' に切り替えることができます。

設定ファイルで pool を指定します

ts
import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    pool: 'forks',
  },
})

または package.json スクリプトで

diff
scripts: {
-  "test": "vitest"
+  "test": "vitest --pool=forks"
}

MIT ライセンスの下でリリースされています。