命令行界面
命令
vitest
在当前目录下启动 Vitest。在开发环境中,它会自动进入监听模式;在 CI 环境(或非交互式终端)中,它会自动进入运行模式。
你可以传递一个额外的参数作为要运行的测试文件的过滤器。例如:
vitest foobar
此过滤器仅检查是否包含指定字符串,不支持正则表达式或 glob 模式,除非你的终端在 Vitest 接收到过滤器之前对其进行了处理。
从 Vitest 3 开始,你还可以通过文件名和行号指定测试:
$ vitest basic/foo.test.ts:10
WARNING
请注意,Vitest 需要完整的文件名才能正常工作。它可以是相对于当前工作目录的路径,也可以是绝对文件路径。
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌
目前 Vitest 也不支持范围:
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌
vitest run
执行单次测试运行,不进入监听模式。
vitest watch
运行所有测试套件,并监听文件变化。当文件改变时,会自动重新运行测试。此命令与不带参数直接运行 vitest
命令效果相同。在 CI 环境或 stdin 不是 TTY(非交互式环境)时,会回退到 vitest run
。
vitest dev
是 vitest watch
的别名。
vitest related
只运行覆盖一组源文件的测试。适用于静态导入(例如 import('./index.js')
或 import index from './index.js'
),但不适用于动态导入(例如 import(filepath)
)。所有文件路径都应相对于项目根目录。
与 lint-staged
或你的 CI 设置一起使用时非常有用。
vitest related /src/index.ts /src/hello-world.js
TIP
请注意 Vitest 默认以监听模式运行。如果你正在使用 lint-staged
等工具,你还应该传递 --run
选项,以便命令可以正常退出。
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
只运行比较性能结果的基准测试。
vitest init
vitest init <name>
命令可用于设置项目配置。目前,它只支持 browser
选项:
vitest init browser
vitest list
vitest list
命令支持所有 vitest
选项,用于打印所有匹配测试的列表。此命令会忽略 reporters
选项。默认情况下,它会打印所有匹配文件过滤器和名称模式的测试名称:
vitest list filename.spec.ts -t="some-test"
describe > some-test
describe > some-test > test 1
describe > some-test > test 2
你可以使用 --json
标志以 JSON 格式打印测试或将其保存到单独的文件中:
vitest list filename.spec.ts -t="some-test" --json=./file.json
如果 --json
标志没有指定值,它会将 JSON 输出到 stdout。
你还可以使用 --filesOnly
标志以仅打印测试文件:
vitest list --filesOnly
tests/test1.test.ts
tests/test2.test.ts
选项
TIP
Vitest 支持 CLI 参数的驼峰式(camelCase)和烤串式(kebab-case)命名。例如,--passWithNoTests
和 --pass-with-no-tests
都将起作用(--no-color
和 --inspect-brk
是例外)。
Vitest 还支持不同的值指定方式:--reporter dot
和 --reporter=dot
都有效。
如果选项支持数组值,你需要多次使用该选项:
vitest --reporter=dot --reporter=default
布尔选项可以通过 no-
前缀来禁用。将值指定为 false
也有效:
vitest --no-api
vitest --api=false
root
- CLI:
-r, --root <path>
- Config: root
项目根路径。
config
- CLI:
-c, --config <path>
配置文件路径。
update
- CLI:
-u, --update
- Config: update
更新快照。
watch
- CLI:
-w, --watch
- Config: watch
启用监听模式。
testNamePattern
- CLI:
-t, --testNamePattern <pattern>
- Config: testNamePattern
只运行名称与指定正则表达式模式完全匹配的测试。
dir
- CLI:
--dir <path>
- Config: dir
扫描测试文件的基础目录。
ui
- CLI:
--ui
- Config: ui
启用 Vitest UI。
open
- CLI:
--open
- Config: open
自动打开 Vitest UI (默认: !process.env.CI
)。
api.port
- CLI:
--api.port [port]
指定服务器端口。请注意,如果端口已被占用,Vite 将自动尝试下一个可用端口,因此这可能不是服务器最终监听的实际端口。如果设置为 true
,则端口将设置为 51204
。
api.host
- CLI:
--api.host [host]
指定服务器应监听的 IP 地址。将其设置为 0.0.0.0
或 true
以监听所有地址,包括局域网和公共地址。
api.strictPort
- CLI:
--api.strictPort
如果端口已被占用,则退出而不是自动尝试下一个可用端口。
silent
- CLI:
--silent [value]
- Config: silent
静默测试的控制台日志输出。使用 'passed-only'
仅查看失败测试的日志。
hideSkippedTests
- CLI:
--hideSkippedTests
隐藏跳过测试的日志。
reporters
- CLI:
--reporter <name>
- Config: reporters
指定报告器 (default, basic, blob, verbose, dot, json, tap, tap-flat, junit, hanging-process, github-actions)。
outputFile
- CLI:
--outputFile <filename/-s>
- Config: outputFile
当指定了支持的报告器时,将测试结果写入文件。对于多个报告器的单独输出,请使用 cac 的点表示法(例如:--outputFile.tap=./tap.txt
)。
coverage.all
- CLI:
--coverage.all
- Config: coverage.all
是否将所有文件(包括未测试的文件)包含在覆盖率报告中。
coverage.provider
- CLI:
--coverage.provider <name>
- Config: coverage.provider
选择用于收集覆盖率的工具,可用值为:"v8"、"istanbul" 和 "custom"。
coverage.enabled
- CLI:
--coverage.enabled
- Config: coverage.enabled
启用覆盖率收集。可以使用 --coverage
CLI 选项覆盖(默认: false
)。
coverage.include
- CLI:
--coverage.include <pattern>
- Config: coverage.include
以 glob 模式包含在覆盖率中的文件。使用多个模式时可重复指定(默认: **
)。
coverage.exclude
- CLI:
--coverage.exclude <pattern>
- Config: coverage.exclude
排除在覆盖率之外的文件。使用多个扩展名时可以多次指定(默认值请访问 coverage.exclude
)。
coverage.extension
- CLI:
--coverage.extension <extension>
- Config: coverage.extension
要包含在覆盖率中的扩展名。使用多个扩展名时可以多次指定(默认: [".js", ".cjs", ".mjs", ".ts", ".mts", ".tsx", ".jsx", ".vue", ".svelte"]
)。
coverage.clean
- CLI:
--coverage.clean
- Config: coverage.clean
在运行测试前清除覆盖率结果 (默认: true
)。
coverage.cleanOnRerun
- CLI:
--coverage.cleanOnRerun
- Config: coverage.cleanOnRerun
在监听模式重新运行时清除覆盖率报告 (默认: true
)。
coverage.reportsDirectory
- CLI:
--coverage.reportsDirectory <path>
- Config: coverage.reportsDirectory
写入覆盖率报告的目录 (默认: ./coverage
)。
coverage.reporter
- CLI:
--coverage.reporter <name>
- Config: coverage.reporter
要使用的覆盖率报告器。更多信息请访问 coverage.reporter
(默认: ["text", "html", "clover", "json"]
)。
coverage.reportOnFailure
- CLI:
--coverage.reportOnFailure
- Config: coverage.reportOnFailure
即使测试失败也生成覆盖率报告 (默认: false
)。
coverage.allowExternal
- CLI:
--coverage.allowExternal
- Config: coverage.allowExternal
收集项目根目录之外文件的覆盖率 (默认: false
)。
coverage.skipFull
- CLI:
--coverage.skipFull
- Config: coverage.skipFull
不显示语句、分支和函数覆盖率达到 100% 的文件 (默认: false
)。
coverage.thresholds.100
- CLI:
--coverage.thresholds.100
- Config: coverage.thresholds.100
将所有覆盖率阈值设置为 100 的快捷方式 (默认: false
)。
coverage.thresholds.perFile
- CLI:
--coverage.thresholds.perFile
- Config: coverage.thresholds.perFile
按文件检查阈值。实际阈值请参见 --coverage.thresholds.lines
、--coverage.thresholds.functions
、--coverage.thresholds.branches
和 --coverage.thresholds.statements
(默认: false
)。
coverage.thresholds.autoUpdate
- CLI:
--coverage.thresholds.autoUpdate
- Config: coverage.thresholds.autoUpdate
当当前覆盖率高于配置的阈值时,更新配置文件中的 "lines"、"functions"、"branches" 和 "statements" 阈值 (默认: false
)。
coverage.thresholds.lines
- CLI:
--coverage.thresholds.lines <number>
行覆盖率阈值。更多信息请访问 istanbuljs。此选项不适用于自定义提供程序。
coverage.thresholds.functions
- CLI:
--coverage.thresholds.functions <number>
函数覆盖率阈值。更多信息请访问 istanbuljs。此选项不适用于自定义提供程序。
coverage.thresholds.branches
- CLI:
--coverage.thresholds.branches <number>
分支覆盖率阈值。更多信息请访问 istanbuljs。此选项不适用于自定义提供程序。
coverage.thresholds.statements
- CLI:
--coverage.thresholds.statements <number>
语句覆盖率阈值。更多信息请访问 istanbuljs。此选项不适用于自定义提供程序。
coverage.ignoreClassMethods
- CLI:
--coverage.ignoreClassMethods <name>
- Config: coverage.ignoreClassMethods
用于忽略覆盖率的类方法名称数组。更多信息请访问 istanbuljs。此选项仅适用于 istanbul 提供程序 (默认: []
)。
coverage.processingConcurrency
- CLI:
--coverage.processingConcurrency <number>
- Config: coverage.processingConcurrency
处理覆盖率结果时使用的并发限制。(默认值为 20 和 CPU 数量中的较小值)。
coverage.customProviderModule
- CLI:
--coverage.customProviderModule <path>
- Config: coverage.customProviderModule
指定自定义覆盖率提供程序模块的模块名称或路径。更多信息请访问 自定义覆盖率提供程序。此选项仅适用于自定义提供程序。
coverage.watermarks.statements
- CLI:
--coverage.watermarks.statements <watermarks>
语句覆盖率的高低水位线,格式为 <high>,<low>
。
coverage.watermarks.lines
- CLI:
--coverage.watermarks.lines <watermarks>
行覆盖率的高低水位线,格式为 <high>,<low>
。
coverage.watermarks.branches
- CLI:
--coverage.watermarks.branches <watermarks>
分支覆盖率的高低水位线,格式为 <high>,<low>
。
coverage.watermarks.functions
- CLI:
--coverage.watermarks.functions <watermarks>
函数覆盖率的高低水位线,格式为 <high>,<low>
。
mode
- CLI:
--mode <name>
- Config: mode
覆盖 Vite 模式 (默认: test
或 benchmark
)。
workspace
- CLI:
--workspace <path>
- Config: workspace
[已弃用] 工作区配置文件的路径。
isolate
- CLI:
--isolate
- Config: isolate
隔离运行每个测试文件。要禁用隔离,请使用 --no-isolate
(默认: true
)。
globals
- CLI:
--globals
- Config: globals
全局注入 API。
dom
- CLI:
--dom
使用 happy-dom 模拟浏览器 API。
browser.enabled
- CLI:
--browser.enabled
- Config: browser.enabled
在浏览器中运行测试。等同于 CLI 选项 --browser.enabled
(默认: false
)。
browser.name
- CLI:
--browser.name <name>
- Config: browser.name
在特定浏览器中运行所有测试。某些浏览器仅适用于特定提供程序(请参阅 --browser.provider
)。更多信息请访问 browser.name
。
browser.headless
- CLI:
--browser.headless
- Config: browser.headless
以无头模式运行浏览器(即不打开图形用户界面 GUI)。如果您在 CI 环境中运行 Vitest,它将默认启用 (默认: process.env.CI
)。
browser.api.port
- CLI:
--browser.api.port [port]
- Config: browser.api.port
指定服务器端口。请注意,如果端口已被占用,Vite 将自动尝试下一个可用端口,因此这可能不是服务器最终监听的实际端口。如果设置为 true
,则端口将设置为 63315
。
browser.api.host
- CLI:
--browser.api.host [host]
- Config: browser.api.host
指定服务器应监听的 IP 地址。将其设置为 0.0.0.0
或 true
以监听所有地址,包括局域网和公共地址。
browser.api.strictPort
- CLI:
--browser.api.strictPort
- Config: browser.api.strictPort
如果端口已被占用,则退出而不是自动尝试下一个可用端口。
browser.provider
- CLI:
--browser.provider <name>
- Config: browser.provider
用于运行浏览器测试的提供程序。某些浏览器仅适用于特定提供程序。可以是 "webdriverio"、"playwright"、"preview" 或自定义提供程序的路径。更多信息请访问 browser.provider
(默认: "preview"
)。
browser.providerOptions
- CLI:
--browser.providerOptions <options>
- Config: browser.providerOptions
传递给浏览器提供程序的选项。更多信息请访问 browser.providerOptions
。
browser.isolate
- CLI:
--browser.isolate
- Config: browser.isolate
隔离运行每个浏览器测试文件。要禁用隔离,请使用 --browser.isolate=false
(默认: true
)。
browser.ui
- CLI:
--browser.ui
- Config: browser.ui
运行测试时显示 Vitest UI (默认: !process.env.CI
)。
browser.fileParallelism
- CLI:
--browser.fileParallelism
- Config: browser.fileParallelism
浏览器测试文件是否应并行运行。使用 --browser.fileParallelism=false
禁用 (默认: true
)。
browser.connectTimeout
- CLI:
--browser.connectTimeout <timeout>
- Config: browser.connectTimeout
如果连接到浏览器时间过长,测试套件将失败 (默认: 60_000
)。
pool
- CLI:
--pool <pool>
- Config: pool
指定池类型,如果不在浏览器中运行 (默认: forks
)。
poolOptions.threads.isolate
- CLI:
--poolOptions.threads.isolate
- Config: poolOptions.threads.isolate
在线程池中隔离测试 (默认: true
)。
poolOptions.threads.singleThread
- CLI:
--poolOptions.threads.singleThread
- Config: poolOptions.threads.singleThread
在单个线程中运行测试 (默认: false
)。
poolOptions.threads.maxThreads
- CLI:
--poolOptions.threads.maxThreads <workers>
- Config: poolOptions.threads.maxThreads
运行测试的最大线程数或线程百分比。
poolOptions.threads.minThreads
- CLI:
--poolOptions.threads.minThreads <workers>
- Config: poolOptions.threads.minThreads
运行测试的最小线程数或线程百分比。
poolOptions.threads.useAtomics
- CLI:
--poolOptions.threads.useAtomics
- Config: poolOptions.threads.useAtomics
使用 Atomics 同步线程。这在某些情况下可以提高性能,但在较旧的 Node 版本中可能会导致段错误 (默认: false
)。
poolOptions.vmThreads.isolate
- CLI:
--poolOptions.vmThreads.isolate
- Config: poolOptions.vmThreads.isolate
在 VM 线程池中隔离测试 (默认: true
)。
poolOptions.vmThreads.singleThread
- CLI:
--poolOptions.vmThreads.singleThread
- Config: poolOptions.vmThreads.singleThread
在单个 VM 线程中运行测试 (默认: false
)。
poolOptions.vmThreads.maxThreads
- CLI:
--poolOptions.vmThreads.maxThreads <workers>
- Config: poolOptions.vmThreads.maxThreads
运行测试的最大 VM 线程数或线程百分比。
poolOptions.vmThreads.minThreads
- CLI:
--poolOptions.vmThreads.minThreads <workers>
- Config: poolOptions.vmThreads.minThreads
运行测试的最小 VM 线程数或线程百分比。
poolOptions.vmThreads.useAtomics
- CLI:
--poolOptions.vmThreads.useAtomics
- Config: poolOptions.vmThreads.useAtomics
使用 Atomics 同步 VM 线程。这在某些情况下可以提高性能,但在较旧的 Node 版本中可能会导致段错误 (默认: false
)。
poolOptions.vmThreads.memoryLimit
- CLI:
--poolOptions.vmThreads.memoryLimit <limit>
- Config: poolOptions.vmThreads.memoryLimit
VM 线程池的内存限制。如遇内存泄漏,请尝试调整此值。
poolOptions.forks.isolate
- CLI:
--poolOptions.forks.isolate
- Config: poolOptions.forks.isolate
在 forks 池中隔离运行测试 (默认: true
)。
poolOptions.forks.singleFork
- CLI:
--poolOptions.forks.singleFork
- Config: poolOptions.forks.singleFork
在单个子进程中运行测试 (默认: false
)。
poolOptions.forks.maxForks
- CLI:
--poolOptions.forks.maxForks <workers>
- Config: poolOptions.forks.maxForks
运行测试的最大进程数或进程百分比。
poolOptions.forks.minForks
- CLI:
--poolOptions.forks.minForks <workers>
- Config: poolOptions.forks.minForks
运行测试的最小进程数或进程百分比。
poolOptions.vmForks.isolate
- CLI:
--poolOptions.vmForks.isolate
- Config: poolOptions.vmForks.isolate
在 VM forks 池中隔离运行测试 (默认: true
)。
poolOptions.vmForks.singleFork
- CLI:
--poolOptions.vmForks.singleFork
- Config: poolOptions.vmForks.singleFork
在单个 VM 子进程中运行测试 (默认: false
)。
poolOptions.vmForks.maxForks
- CLI:
--poolOptions.vmForks.maxForks <workers>
- Config: poolOptions.vmForks.maxForks
运行测试的最大 VM 进程数或进程百分比。
poolOptions.vmForks.minForks
- CLI:
--poolOptions.vmForks.minForks <workers>
- Config: poolOptions.vmForks.minForks
运行测试的最小 VM 进程数或进程百分比。
poolOptions.vmForks.memoryLimit
- CLI:
--poolOptions.vmForks.memoryLimit <limit>
- Config: poolOptions.vmForks.memoryLimit
VM forks 池的内存限制。如遇内存泄漏,请尝试调整此值。
fileParallelism
- CLI:
--fileParallelism
- Config: fileParallelism
所有测试文件是否应并行运行。使用 --no-file-parallelism
禁用 (默认: true
)。
maxWorkers
- CLI:
--maxWorkers <workers>
- Config: maxWorkers
运行测试的最大 worker 数或 worker 百分比。
minWorkers
- CLI:
--minWorkers <workers>
- Config: minWorkers
运行测试的最小 worker 数或 worker 百分比。
environment
- CLI:
--environment <name>
- Config: environment
指定运行器环境,如果不在浏览器中运行 (默认: node
)。
passWithNoTests
- CLI:
--passWithNoTests
- Config: passWithNoTests
未找到测试时仍视为通过。
logHeapUsage
- CLI:
--logHeapUsage
- Config: logHeapUsage
在 Node.js 环境中运行时显示每个测试的堆大小。
allowOnly
- CLI:
--allowOnly
- Config: allowOnly
允许运行标记为 only
的测试和套件 (默认: !process.env.CI
)。
dangerouslyIgnoreUnhandledErrors
- CLI:
--dangerouslyIgnoreUnhandledErrors
- Config: dangerouslyIgnoreUnhandledErrors
忽略发生的任何未处理错误。
sequence.shuffle.files
- CLI:
--sequence.shuffle.files
- Config: sequence.shuffle.files
以随机顺序运行文件。如果启用此选项,长时间运行的测试不会因此而提前开始。(默认: false
)。
sequence.shuffle.tests
- CLI:
--sequence.shuffle.tests
- Config: sequence.shuffle.tests
以随机顺序运行测试 (默认: false
)。
sequence.concurrent
- CLI:
--sequence.concurrent
- Config: sequence.concurrent
使测试并行运行 (默认: false
)。
sequence.seed
- CLI:
--sequence.seed <seed>
- Config: sequence.seed
设置随机化种子。如果 --sequence.shuffle
为 false
,此选项将无效。更多信息请访问 "随机种子" 页面。
sequence.hooks
- CLI:
--sequence.hooks <order>
- Config: sequence.hooks
更改钩子执行的顺序。接受的值为:"stack"、"list" 和 "parallel"。更多信息请访问 sequence.hooks
(默认: "parallel"
)。
sequence.setupFiles
- CLI:
--sequence.setupFiles <order>
- Config: sequence.setupFiles
更改 setup 文件执行的顺序。接受的值为:"list" 和 "parallel"。如果设置为 "list",将按照定义顺序运行 setup 文件。如果设置为 "parallel",将并行运行 setup 文件 (默认: "parallel"
)。
inspect
- CLI:
--inspect [[host:]port]
- Config: inspect
启用 Node.js 调试器 (默认: 127.0.0.1:9229
)。
inspectBrk
- CLI:
--inspectBrk [[host:]port]
- Config: inspectBrk
启用 Node.js 调试器并在测试开始前中断。
testTimeout
- CLI:
--testTimeout <timeout>
- Config: testTimeout
测试的默认超时时间(单位:毫秒)(默认: 5000
)。使用 0
完全禁用超时。
hookTimeout
- CLI:
--hookTimeout <timeout>
- Config: hookTimeout
默认钩子超时时间(单位:毫秒)(默认: 10000
)。使用 0
完全禁用超时。
bail
- CLI:
--bail <number>
- Config: bail
当给定数量的测试失败时停止测试执行 (默认: 0
)。
retry
- CLI:
--retry <times>
- Config: retry
测试失败时重试指定次数 (默认: 0
)。
diff.aAnnotation
- CLI:
--diff.aAnnotation <annotation>
- Config: diff.aAnnotation
预期行的标注 (默认: Expected
)。
diff.aIndicator
- CLI:
--diff.aIndicator <indicator>
- Config: diff.aIndicator
预期行的指示符号 (默认: -
)。
diff.bAnnotation
- CLI:
--diff.bAnnotation <annotation>
- Config: diff.bAnnotation
接收行的标注 (默认: Received
)。
diff.bIndicator
- CLI:
--diff.bIndicator <indicator>
- Config: diff.bIndicator
接收行的指示符号 (默认: +
)。
diff.commonIndicator
- CLI:
--diff.commonIndicator <indicator>
- Config: diff.commonIndicator
公共行的指示符号 (默认: )。
diff.contextLines
- CLI:
--diff.contextLines <lines>
- Config: diff.contextLines
每个变更周围显示的上下文行数 (默认: 5
)。
diff.emptyFirstOrLastLinePlaceholder
- CLI:
--diff.emptyFirstOrLastLinePlaceholder <placeholder>
- Config: diff.emptyFirstOrLastLinePlaceholder
空的第一行或最后一行的占位符 (默认: ""
)。
diff.expand
- CLI:
--diff.expand
- Config: diff.expand
展开所有公共行 (默认: true
)。
diff.includeChangeCounts
- CLI:
--diff.includeChangeCounts
- Config: diff.includeChangeCounts
在 diff 输出中包含比较计数 (默认: false
)。
diff.omitAnnotationLines
- CLI:
--diff.omitAnnotationLines
- Config: diff.omitAnnotationLines
从输出中省略注释行 (默认: false
)。
diff.printBasicPrototype
- CLI:
--diff.printBasicPrototype
- Config: diff.printBasicPrototype
输出基本原型对象和数组 (默认: true
)。
diff.maxDepth
- CLI:
--diff.maxDepth <maxDepth>
- Config: diff.maxDepth
输出嵌套对象时的递归深度限制 (默认: 20
)。
diff.truncateThreshold
- CLI:
--diff.truncateThreshold <threshold>
- Config: diff.truncateThreshold
在每个更改前后显示的行数 (默认: 0
)。
diff.truncateAnnotation
- CLI:
--diff.truncateAnnotation <annotation>
- Config: diff.truncateAnnotation
截断行的标注 (默认: ... Diff result is truncated
)。
exclude
- CLI:
--exclude <glob>
- Config: exclude
要从测试中排除的额外文件 glob 模式。
expandSnapshotDiff
- CLI:
--expandSnapshotDiff
- Config: expandSnapshotDiff
快照失败时显示完整的差异。
disableConsoleIntercept
- CLI:
--disableConsoleIntercept
- Config: disableConsoleIntercept
禁用控制台日志的自动拦截 (默认: false
)。
typecheck.enabled
- CLI:
--typecheck.enabled
- Config: typecheck.enabled
在运行测试的同时启用类型检查 (默认: false
)。
typecheck.only
- CLI:
--typecheck.only
- Config: typecheck.only
仅运行类型检查测试。此操作会自动启用类型检查 (默认: false
)。
typecheck.checker
- CLI:
--typecheck.checker <name>
- Config: typecheck.checker
指定要使用的类型检查器。可用值为:"tsc" 和 "vue-tsc" 或可执行文件的路径 (默认: "tsc"
)。
typecheck.allowJs
- CLI:
--typecheck.allowJs
- Config: typecheck.allowJs
允许对 JavaScript 文件进行类型检查。默认情况下从 tsconfig.json
获取值。
typecheck.ignoreSourceErrors
- CLI:
--typecheck.ignoreSourceErrors
- Config: typecheck.ignoreSourceErrors
忽略源文件中的类型错误。
typecheck.tsconfig
- CLI:
--typecheck.tsconfig <path>
- Config: typecheck.tsconfig
自定义 tsconfig 文件的路径。
typecheck.spawnTimeout
- CLI:
--typecheck.spawnTimeout <time>
- Config: typecheck.spawnTimeout
启动类型检查器所需的最小时间(单位:毫秒)。
project
- CLI:
--project <name>
- Config: project
如果您使用 Vitest 工作区功能,要运行的项目名称。可以重复此选项来运行多个项目:--project=1 --project=2
。您还可以使用通配符过滤项目,例如 --project=packages*
,并使用 --project=!pattern
排除项目。
slowTestThreshold
- CLI:
--slowTestThreshold <threshold>
- Config: slowTestThreshold
测试或套件被视为慢速的阈值(单位:毫秒)(默认: 300
)。
teardownTimeout
- CLI:
--teardownTimeout <timeout>
- Config: teardownTimeout
teardown 函数的默认超时时间(单位:毫秒)(默认: 10000
)。
maxConcurrency
- CLI:
--maxConcurrency <number>
- Config: maxConcurrency
套件中最大并发测试数 (默认: 5
)。
expect.requireAssertions
- CLI:
--expect.requireAssertions
- Config: expect.requireAssertions
要求所有测试至少有一个断言。
expect.poll.interval
- CLI:
--expect.poll.interval <interval>
- Config: expect.poll.interval
expect.poll()
断言的轮询间隔(单位:毫秒)(默认: 50
)。
expect.poll.timeout
- CLI:
--expect.poll.timeout <timeout>
- Config: expect.poll.timeout
expect.poll()
断言的轮询超时时间(单位:毫秒)(默认: 1000
)。
printConsoleTrace
- CLI:
--printConsoleTrace
- Config: printConsoleTrace
始终打印控制台堆栈跟踪。
includeTaskLocation
- CLI:
--includeTaskLocation
- Config: includeTaskLocation
在 location
属性中收集测试和套件位置。
attachmentsDir
- CLI:
--attachmentsDir <dir>
- Config: attachmentsDir
context.annotate
附件的存储目录 (默认: .vitest-attachments
)。
run
- CLI:
--run
禁用监听模式。
color
- CLI:
--no-color
从控制台输出中移除颜色。
clearScreen
- CLI:
--clearScreen
在监听模式下重新运行测试时清除终端屏幕 (默认: true
)。
configLoader
- CLI:
--configLoader <loader>
使用 bundle
通过 esbuild 打包配置,或使用 runner
(实验性)来即时处理配置。此功能仅在 Vite 6.1.0 及更高版本中可用。(默认: bundle
)。
standalone
- CLI:
--standalone
启动 Vitest 而不运行测试。文件过滤器将被忽略,测试只会在文件更改时运行 (默认: false
)。
changed
- 类型:
boolean | string
- 默认值:false
只运行针对已更改文件的测试。如果未提供值,它将运行针对未提交更改(包括已暂存和未暂存的更改)的测试。
要运行针对上次提交中进行的更改的测试,你可以使用 --changed HEAD~1
。你还可以传递提交哈希(例如 --changed 09a9920
)或分支名称(例如 --changed origin/develop
)。
与代码覆盖率一起使用时,报告将仅包含与更改相关的文件。
如果与 forceRerunTriggers
配置选项配合使用,如果 forceRerunTriggers
列表中至少有一个文件发生更改,它将运行整个测试套件。默认情况下,Vitest 配置文件和 package.json
的更改将始终重新运行整个测试套件。
shard
- 类型:
string
- 默认值:disabled
要执行的测试套件分片,格式为 <index>/<count>
,其中:
count
是一个正整数,表示总共分割的份数index
是一个正整数,表示当前分割部分的索引
该命令将所有测试划分为 count
个相等的部分,并且只运行属于 index
部分的测试。例如,要将测试套件分成三部分,请使用:
vitest run --shard=1/3
vitest run --shard=2/3
vitest run --shard=3/3
WARNING
你不能在 --watch
启用(开发环境中默认启用)的情况下使用此选项。
TIP
如果 --reporter=blob
在没有指定输出文件的情况下使用,默认路径将包含当前分片配置,以避免与其他 Vitest 进程冲突。
merge-reports
- 类型:
boolean | string
合并指定文件夹(默认为 .vitest-reports
)中的所有 blob 报告。你可以将任何报告器(除了 blob
)与此命令一起使用:
vitest --merge-reports --reporter=junit