提升性能
默认情况下,Vitest 在基于 池 的隔离环境中运行每个测试文件。
threads
池在单独的Worker
中运行每个测试文件。forks
池在单独的 派生子进程 中运行每个测试文件。vmThreads
池在单独的 VM 上下文 中运行每个测试文件,但它使用工作线程进行并行处理。
这极大地增加了测试时间,对于不依赖副作用并正确清理其状态的项目(通常适用于使用 node
环境的项目)来说可能并不理想。在这种情况下,禁用隔离将提高测试速度。为此,您可以向 CLI 提供 --no-isolate
标志,或将配置中的 test.isolate
属性设置为 false
。如果您同时使用多个池并使用 poolMatchGlobs
,您也可以禁用正在使用的特定池的隔离。
bash
vitest --no-isolate
ts
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
isolate: false,
// you can also disable isolation only for specific pools
poolOptions: {
forks: {
isolate: false,
},
},
},
})
提示
如果您使用的是 vmThreads
池,则无法禁用隔离。使用 threads
池来提高测试性能。
对于某些项目,禁用并行处理以提高启动时间可能也是可取的。为此,向 CLI 提供 --no-file-parallelism
标志,或将配置中的 test.fileParallelism
属性设置为 false
。
bash
vitest --no-file-parallelism
ts
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
fileParallelism: false,
},
})