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

快速入门

特性

配置 Vitest

API

测试 API 参考

模拟函数

Vi

expect

expectTypeOf

assert

assertType

指南

命令行界面

测试过滤

测试项目

报告器

覆盖率

快照

模拟

并行

类型测试

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