Skip to content
Vitest 3
Main Navigation 指南 & API配置瀏覽器模式進階 API
3.2.0
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

快速入門

功能特色

配置參考

API

測試 API 參考

模擬函式

Vi

expect

expectTypeOf

assert

assertType

指南

命令列介面

測試篩選

測試專案

報告器

程式碼覆蓋率

快照

模擬(Mocking)

平行化

型別測試

Vitest UI

內聯測試

測試上下文

測試註解

測試環境

擴展匹配器

IDE 整合

偵錯

常見錯誤

遷移指南

遷移到 Vitest 3.0

從 Jest 遷移

效能

測試效能分析

提升效能

瀏覽器模式

進階 API

與其他測試執行器的比較

本頁導覽

常見錯誤 ​

找不到模組 './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, 
    },
  },
});

無法終止 worker ​

當 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:child_process 中執行測試案例,而非在多個 node:worker_threads 中執行。

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

export default defineConfig({
  test: {
    pool: 'forks',
  },
});
bash
vitest --pool=forks
Pager
上一頁偵錯
下一頁遷移指南

以 MIT 授權條款 發布。

版權所有 (c) 2021-Present Vitest Team

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

以 MIT 授權條款 發布。

版權所有 (c) 2021-Present Vitest Team