Skip to content
Vitest 1
Main Navigation 指南API配置高級
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

開始使用

功能特性

工作區

命令列界面

測試過濾器

報告器

覆蓋率

快照

模擬(Mocking)

測試類型

Vitest UI

瀏覽器模式

原始碼測試

測試上下文

測試環境

擴展匹配器

IDE 整合支援

偵錯

與其他測試執行器的比較

遷移指南

常見錯誤

提升效能

API

測試 API 參考文件

模擬函數

Vi

expect

expectTypeOf

assert

assertType

配置

管理 Vitest 配置文件

配置 Vitest

本頁導覽

常見錯誤 ​

找不到模組 './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 總是會被提升(hoisted) - 這意味著該模塊在測試文件開始執行之前就已經被載入了 - 最有可能是在一個 setup 文件中。 要解決這個錯誤,請移除導入語句,或者在 setup 文件的末尾清除快存 - 注意,在這種情況下,setup 文件和你的測試文件將會引用不同的模塊。

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

sideEffect();

vi.resetModules();

無法終止 worker ​

當 NodeJS 的 fetch 與預設的 pool: 'threads' 一起使用時,可能會發生此錯誤。 此問題在問題 Timeout abort can leave process(es) running in the background #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"
}
Pager
上一頁遷移指南
下一頁提升效能

以 MIT 授權條款 發布。

版權所有 (c) 2024 Mithril Contributors

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

以 MIT 授權條款 發布。

版權所有 (c) 2024 Mithril Contributors