Skip to content

setupFiles

  • 类型: string | string[]

相对于 项目根目录 的初始化文件路径。它们会在每个 测试文件 之前的同一进程中运行。默认情况下,所有测试文件并行运行,但你可以通过 sequence.setupFiles 选项进行配置。

Vitest 会忽略这些文件的任何导出。

WARNING

注意,初始化文件与测试在同一个进程中执行,这与 globalSetup 不同,后者会在任何测试工作线程创建之前,在主线程中仅执行一次。

INFO

编辑设置文件将自动触发所有测试的重新运行。

如果后台运行了高负载进程,可在内部使用 process.env.VITEST_POOL_ID(类整数字符串)区分不同工作线程以分配负载。

WARNING

如果禁用了 隔离模式,导入的模块会被缓存,但初始化文件本身会在每个测试文件之前重新运行,这意味着每次测试前你访问的都是同一个全局对象。请确保不会执行不必要的重复操作。

比如,你可能依赖于一个全局变量:

ts
import { config } from '@some-testing-lib'

if (!globalThis.setupInitialized) {
  config.plugins = [myCoolPlugin]
  computeHeavyThing()
  globalThis.setupInitialized = true
}

// 在每个套件之前重置 Hook
afterEach(() => {
  cleanup()
})

globalThis.resetBeforeEachTest = true