Skip to content
Vitest 2
Main Navigation ガイドAPI設定ブラウザモード高度な
2.1.9
1.6.1
0.34.6

日本語

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
한국어
Italiano
Polski
Türkçe
čeština
magyar

日本語

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
한국어
Italiano
Polski
Türkçe
čeština
magyar

外観

Sidebar Navigation

Vitest の必要性

はじめに

特徴

ワークスペース

コマンドラインインターフェース

テストのフィルタリング

レポーター

カバレッジ

スナップショット

モック

型テスト

Vitest UI

ソース内テスト

テストコンテキスト

テスト環境

マッチャー拡張

IDE 連携機能

デバッグ

他のテストランナーとの比較

マイグレーションガイド

よくあるエラー

Profiling Test Performance

パフォーマンスの改善

このページの内容

よくあるエラー ​

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

モジュールが見つからないというエラーが表示される場合、以下の原因が考えられます。

    1. パスが間違っている可能性があります。正しいパスであることを確認してください。
    1. tsconfig.jsonのbaseUrlに依存している可能性があります。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'で使用されたときに発生することがあります。この問題は、Timeout abort can leave process(es) running in the background #3077で追跡されています。

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

ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks

セグメンテーション違反とネイティブコードエラー ​

pool: 'threads'でネイティブNodeJSモジュールを実行すると、ネイティブコードから不明なエラーが発生することがあります。

  • Segmentation fault (core dumped)
  • thread '<unnamed>' panicked at 'assertion failed
  • Abort trap: 6
  • internal error: entered unreachable code

これらの場合、ネイティブモジュールはマルチスレッド対応になっていない可能性があります。回避策として、pool: 'forks'に切り替えることができます。これは、複数のnode:worker_threadsではなく、複数のnode:child_processでテストケースを実行します。

ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks
Pager
前のページマイグレーションガイド
次のページProfiling Test Performance

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

Copyright (c) 2024 Mithril Contributors

https://v2.vitest.dev/guide/common-errors

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

Copyright (c) 2024 Mithril Contributors