- 命令行终端:
-r, --root <path> - 配置: root
根路径
- 命令行终端:
-c, --config <path>
配置文件的路径
- 命令行终端:
-u, --update [type] - 配置: update
更新快照(接受 boolean, "new"、"all" 或 "none")
- 命令行终端:
-w, --watch - 配置: watch
启用观察模式
- 命令行终端:
-t, --testNamePattern <pattern> - 配置: testNamePattern
使用符合指定 regexp 模式的运行测试
- 命令行终端:
--dir <path> - 配置: dir
扫描测试文件的基本目录
- 命令行终端:
--ui
启用 UI 模式
- 命令行终端:
--open - 配置: open
自动打开用户界面(默认值:!process.env.CI)
- 命令行终端:
--api.port [port]
指定服务器端口。注意,如果端口已被使用,Vite 会自动尝试下一个可用端口,因此这可能不是服务器最终监听的实际端口。如果为 true,将设置为51204
- 命令行终端:
--api.host [host]
指定服务器应该监听哪些 IP 地址。设为 0.0.0.0 或 true 则监听所有地址,包括局域网地址和公共地址
- 命令行终端:
--api.strictPort
设置为 true 时,如果端口已被使用,则退出,而不是自动尝试下一个可用端口
- 命令行终端:
--api.allowExec - 配置: api.allowExec
允许 API 执行代码。(在非受信环境中启用此选项时需谨慎)
- 命令行终端:
--api.allowWrite - 配置: api.allowWrite
允许 API 编辑文件。(在非受信环境中启用此选项时需谨慎)
- 命令行终端:
--silent [value] - 配置: silent
测试的静默控制台输出。使用 'passed-only' 仅查看失败测试的日志
- 命令行终端:
--hideSkippedTests
隐藏跳过测试的日志
- 命令行终端:
--reporter <name> - 配置: reporters
指定报告器(default, agent, minimal, blob, verbose, dot, json, tap, tap-flat, junit, tree, hanging-process, github-actions)
- 命令行终端:
--outputFile <filename/-s> - 配置: outputFile
如果还指定了支持报告程序,则将测试结果写入文件,使用 cac 的点符号表示多个报告程序的单个输出结果 (比如: --outputFile.tap=./tap.txt)
- 命令行终端:
--coverage.provider <name> - 配置: coverage.provider
选择覆盖范围采集工具,可用值为: "v8", "istanbul" and "custom"
- 命令行终端:
--coverage.enabled - 配置: coverage.enabled
启用覆盖范围收集。可使用 --coverage CLI 选项覆盖(默认值:false)
- 命令行终端:
--coverage.include <pattern> - 配置: coverage.include
作为通配符模式包含在覆盖率中的文件。在使用多个模式时可以指定多次。默认情况下,只包含被测试覆盖的文件
- 命令行终端:
--coverage.exclude <pattern> - 配置: coverage.exclude
覆盖范围中要排除的文件。使用多个扩展名时,可指定多次
- 命令行终端:
--coverage.clean - 配置: coverage.clean
运行测试前清除覆盖结果(默认值:true)
- 命令行终端:
--coverage.cleanOnRerun - 配置: coverage.cleanOnRerun
重新运行监视时清理覆盖率报告(默认值:true)
- 命令行终端:
--coverage.reportsDirectory <path> - 配置: coverage.reportsDirectory
将覆盖率报告写入的目录(默认值: ./coverage)
- 命令行终端:
--coverage.reporter <name> - 配置: coverage.reporter
Coverage reporters to use. Visit coverage.reporter for more information (default: ["text", "html", "clover", "json"])
- 命令行终端:
--coverage.reportOnFailure - 配置: coverage.reportOnFailure
即使测试失败也能生成覆盖率报告 (默认值: false)
- 命令行终端:
--coverage.allowExternal - 配置: coverage.allowExternal
收集项目根目录外文件的覆盖范围(默认值:false)
- 命令行终端:
--coverage.skipFull - 配置: coverage.skipFull
不显示语句、分支和函数覆盖率为 100% 的文件(默认值:false)
- 命令行终端:
--coverage.thresholds.100 - 配置: coverage.thresholds.100
将所有覆盖率阈值设置为 100 的快捷方式(默认值:false)
- 命令行终端:
--coverage.thresholds.perFile - 配置: coverage.thresholds.perFile
检查每个文件的阈值。 --coverage.thresholds.lines, --coverage.thresholds.functions, --coverage.thresholds.branches, --coverage.thresholds.statements 为实际阈值(默认值:false)
- 命令行终端:
--coverage.thresholds.autoUpdate <boolean|function> - 配置: coverage.thresholds.autoUpdate
更新阈值: 当前覆盖率高于配置的阈值时,将 "lines"、"functions"、"branches"和 "statements"更新到配置文件(默认值:false)
- 命令行终端:
--coverage.thresholds.lines <number>
针对代码行的覆盖度阈值设定,请访问 istanbuljs 了解更多信息。此选项不适用于自定义 providers
- 命令行终端:
--coverage.thresholds.functions <number>
针对函数的覆盖度阈值设定,请访问 istanbuljs 了解更多信息。 此选项不适用于自定义 providers
- 命令行终端:
--coverage.thresholds.branches <number>
针对 branches 的覆盖度阈值设定,请访问 istanbuljs 了解更多信息。 此选项不适用于自定义 providers
- 命令行终端:
--coverage.thresholds.statements <number>
针对 statements 的覆盖度阈值设定,请访问 istanbuljs 了解更多信息。 此选项不适用于自定义 providers
- 命令行终端:
--coverage.ignoreClassMethods <name> - 配置: coverage.ignoreClassMethods
覆盖时要忽略的类方法名称数组。更多信息请访问 istanbuljs 。该选项仅适用于 istanbul providers(默认值:[])
- 命令行终端:
--coverage.processingConcurrency <number> - 配置: coverage.processingConcurrency
处理覆盖率结果时使用的并发限制。 (默认最小值介于 20 和 CPU 数量之间)
- 命令行终端:
--coverage.customProviderModule <path> - 配置: coverage.customProviderModule
指定自定义覆盖率提供者模块的模块名称或路径。详情请参阅 自定义覆盖率提供者 了解更多信息。此选项仅适用于自定义提供者。
- 命令行终端:
--coverage.watermarks.statements <watermarks>
语句覆盖率高/低阈值,格式: <high>,<low>
- 命令行终端:
--coverage.watermarks.lines <watermarks>
行覆盖率高/低阈值,格式: <high>,<low>
- 命令行终端:
--coverage.watermarks.branches <watermarks>
分支覆盖率高/低阈值,格式: <high>,<low>
- 命令行终端:
--coverage.watermarks.functions <watermarks>
函数覆盖率高/低阈值,格式: <high>,<low>
- 命令行终端:
--coverage.changed <commit/branch> - 配置: coverage.changed
仅收集指定提交或分支(例如 origin/main 或 HEAD~1)以来更改的文件的覆盖率。默认继承自 --changed 的值。
- 命令行终端:
--coverage.excludeAfterRemap - 配置: coverage.excludeAfterRemap
在覆盖率数据重新映射回源代码后再次应用排除规则。(默认值:false)
- 命令行终端:
--coverage.htmlDir <path> - 配置: coverage.htmlDir
UI 模式和 HTML 报告器中提供的 HTML 覆盖率输出目录。
- 命令行终端:
--coverage.autoAttachSubprocess - 配置: coverage.autoAttachSubprocess
跟踪测试运行期间生成的 node:child_process 和 node:worker_threads 的覆盖率。仅 v8 提供程序支持。(默认值:false)
- 命令行终端:
--mode <name> - 配置: mode
覆盖 Vite 模式 (默认值: test 或 benchmark)
- 命令行终端:
--isolate - 配置: isolate
隔离运行每个测试文件。要禁用隔离, 使用 --no-isolate (默认值: true)
- 命令行终端:
--globals - 配置: globals
全局注入
- 命令行终端:
--dom
使用 happy-dom 模拟浏览器 API
- 命令行终端:
--browser.enabled - 配置: browser.enabled
在浏览器中运行测试。 相当于 --browser.enabled (默认值: false)
- 命令行终端:
--browser.name <name>
在指定浏览器中运行所有测试。某些浏览器仅适用于特定的 provider(详情请参见 --browser.provider)
- 命令行终端:
--browser.headless - 配置: browser.headless
在无头模式下运行浏览器(即不打开图形用户界面)。如果在 CI 中运行 Vitest,默认情况下将启用无头模式 (默认值: process.env.CI)
- 命令行终端:
--browser.api.port [port] - 配置: browser.api.port
指定服务器端口。注意,如果端口已被使用,Vite 会自动尝试下一个可用端口,因此这可能不是服务器最终监听的实际端口。如果为 true,将设置为 63315
- 命令行终端:
--browser.api.host [host] - 配置: browser.api.host
指定服务器应该监听哪些 IP 地址。设为 0.0.0.0 或 true 则监听所有地址,包括局域网地址和公共地址
- 命令行终端:
--browser.api.strictPort - 配置: browser.api.strictPort
设置为 true 时,如果端口已被使用,则退出,而不是自动尝试下一个可用端口
- 命令行终端:
--browser.api.allowExec - 配置: browser.api.allowExec
允许 API 执行代码。(在非受信环境中启用此选项时需谨慎)
- 命令行终端:
--browser.api.allowWrite - 配置: browser.api.allowWrite
允许 API 编辑文件。(在非受信环境中启用此选项时需谨慎)
- 命令行终端:
--browser.isolate - 配置: browser.isolate
隔离运行每个浏览器测试文件。要禁用隔离请使用 --browser.isolate=false (默认值: true)
- 命令行终端:
--browser.ui - 配置: browser.ui
运行测试时显示 Vitest UI (默认值: !process.env.CI)
- 命令行终端:
--browser.detailsPanelPosition <position> - 配置: browser.detailsPanelPosition
浏览器模式下详情面板的默认位置。可选 right(水平分割)或 bottom(垂直分割)(默认值:right)
- 命令行终端:
--browser.fileParallelism
浏览器测试文件是否应并行运行。使用 --browser.fileParallelism=false 进行禁用(默认值: true)
- 命令行终端:
--browser.connectTimeout <timeout> - 配置: browser.connectTimeout
如果连接浏览器时间超时,测试套件将失败 (默认值: 60_000)
- 命令行终端:
--browser.trackUnhandledErrors - 配置: browser.trackUnhandledErrors
控制 Vitest 是否捕获未捕获的异常以便报告(默认:true)
- 命令行终端:
--browser.trace <mode> - 配置: browser.trace
启用追踪视图模式。 可选项: "on", "off", "on-first-retry", "on-all-retries", "retain-on-failure"
- 命令行终端:
--browser.traceView.enabled - 配置: browser.traceView.enabled
启用浏览器测试 Vitest 追踪视图收集功能(默认值:false)
- 命令行终端:
--browser.traceView.recordCanvas - 配置: browser.traceView.recordCanvas
在追踪视图快照中捕获 Canvas 像素(默认:false)
- 命令行终端:
--browser.traceView.inlineImages - 配置: browser.traceView.inlineImages
在追踪视图快照中内联加载的图像像素(默认值:false)
- 命令行终端:
--browser.locators.exact - 配置: browser.locators.exact
定位器是否默认需完全匹配文本内容(默认值:false)
- 命令行终端:
--pool <pool> - 配置: pool
如果未在浏览器中运行,则指定 pool (默认值: threads)。
- 命令行终端:
--execArgv <option> - 配置: execArgv
为 worker_threads 或 child_process 启动的 node 进程传递额外参数。
- 命令行终端:
--vmMemoryLimit <limit> - 配置: vmMemoryLimit
虚拟机池的内存限制。如果出现内存泄漏问题,可尝试调整此参数值。
- 命令行终端:
--fileParallelism - 配置: fileParallelism
是否所有测试文件都应并行运行. 使用 --no-file-parallelism 去禁用 (默认值: true)
- 命令行终端:
--maxWorkers <workers> - 配置: maxWorkers
同时并发执行测试任务的最大线程数或百分比
- 命令行终端:
--environment <name> - 配置: environment
如果不在浏览器中运行,则指定运行环境 (默认值: node)
- 命令行终端:
--passWithNoTests - 配置: passWithNoTests
未发现测试时通过
- 命令行终端:
--logHeapUsage - 配置: logHeapUsage
在节点中运行时,显示每个测试的堆大小
- 命令行终端:
--detectAsyncLeaks - 配置: detectAsyncLeaks
检测测试文件中是否存在异步资源泄漏(默认值:false)
- 命令行终端:
--allowOnly - 配置: allowOnly
允许执行那些被标记为 "only" 的测试用例或测试套件 (默认值: !process.env.CI)
- 命令行终端:
--dangerouslyIgnoreUnhandledErrors - 配置: dangerouslyIgnoreUnhandledErrors
忽略任何未处理的错误
- 命令行终端:
--sequence.shuffle.files - 配置: sequence.shuffle.files
以随机顺序运行文件。如果启用此选项,长时间运行的测试将不会提前开始。 (默认值: false)
- 命令行终端:
--sequence.shuffle.tests - 配置: sequence.shuffle.tests
以随机方式运行测试(默认值:false)
- 命令行终端:
--sequence.concurrent - 配置: sequence.concurrent
使测试并行运行(默认值:false)
- 命令行终端:
--sequence.seed <seed> - 配置: sequence.seed
设置随机化种子。如果 --sequence.shuffle(随机序列)是false,则此选项无效。更多信息请参阅 "随机种子"。
- 命令行终端:
--sequence.hooks <order> - 配置: sequence.hooks
更改钩子函数的执行顺序。可接受的值有:"stack"、"list" 和 "parallel"。更多信息请参阅 sequence.hooks(默认值:"parallel")
- 命令行终端:
--sequence.setupFiles <order> - 配置: sequence.setupFiles
更改设置文件的执行顺序。可接受的值有 "list" 和 "parallel"。如果设置为"list",将按照定义的顺序运行设置文件。如果设置为 "parallel",将并行运行设置文件(默认值:"parallel")
- 命令行终端:
--inspect [[host:]port]
启用 Node.js 检查器(默认值:127.0.0.1:9229)
- 命令行终端:
--inspectBrk [[host:]port]
启用 Node.js 检查器并在测试开始前中断
- 命令行终端:
--testTimeout <timeout> - 配置: testTimeout
测试的默认超时(毫秒)(默认值:5000)。使用 0 完全禁用超时
- 命令行终端:
--hookTimeout <timeout> - 配置: hookTimeout
默认钩子超时(以毫秒为单位)(默认值:10000)。使用 0 完全禁用超时
- 命令行终端:
--bail <number> - 配置: bail
当指定数量的测试失败时停止测试执行(默认值:0)
- 命令行终端:
--retry.count <times> - 配置: retry.count
如果测试失败,重试特定次数(默认值: 0)
- 命令行终端:
--retry.delay <ms> - 配置: retry.delay
重试之间的延迟时间(单位:毫秒)(默认值:0)
- 命令行终端:
--retry.condition <pattern> - 配置: retry.condition
触发重试操作的错误信息匹配正则表达式。仅当错误信息符合该模式时才会执行重试(默认值:所有错误都会触发重试)
- 命令行终端:
--diff.aAnnotation <annotation> - 配置: diff.aAnnotation
预期值的行注释 (默认值: Expected)
- 命令行终端:
--diff.aIndicator <indicator> - 配置: diff.aIndicator
预期值的行标识 (默认值: -)
- 命令行终端:
--diff.bAnnotation <annotation> - 配置: diff.bAnnotation
实际值的行注释 (默认值: Received)
- 命令行终端:
--diff.bIndicator <indicator> - 配置: diff.bIndicator
实际值的行标识 (默认值: +)
- 命令行终端:
--diff.commonIndicator <indicator> - 配置: diff.commonIndicator
公共行标识 (默认值: )
- 命令行终端:
--diff.contextLines <lines> - 配置: diff.contextLines
每次变更显示上下文行数 (默认值: 5)
- 命令行终端:
--diff.emptyFirstOrLastLinePlaceholder <placeholder> - 配置: diff.emptyFirstOrLastLinePlaceholder
空首行或空末行的占位符 (默认值: "")
- 命令行终端:
--diff.expand - 配置: diff.expand
展开所有公共行 (默认值: true)
- 命令行终端:
--diff.includeChangeCounts - 配置: diff.includeChangeCounts
在 diff 的输出中输出比较计数 (默认值: false)
- 命令行终端:
--diff.omitAnnotationLines - 配置: diff.omitAnnotationLines
省略输出中的注释行 (默认值: false)
- 命令行终端:
--diff.printBasicPrototype - 配置: diff.printBasicPrototype
打印基础的原型 Object 和 Array (默认值: true)
- 命令行终端:
--diff.maxDepth <maxDepth> - 配置: diff.maxDepth
打印嵌套对象时,递归深度限制 (默认值: 20)
- 命令行终端:
--diff.truncateThreshold <threshold> - 配置: diff.truncateThreshold
显示成每次变更前后的行数 (默认值: 0)
- 命令行终端:
--diff.truncateAnnotation <annotation> - 配置: diff.truncateAnnotation
在 diff 结果末尾输出的注释(如果被截断) (默认值: ... Diff result is truncated)
- 命令行终端:
--exclude <glob> - 配置: exclude
测试中排除的其他文件路径匹配模式
- 命令行终端:
--expandSnapshotDiff - 配置: expandSnapshotDiff
快照失败时显示完整差异
- 命令行终端:
--disableConsoleIntercept - 配置: disableConsoleIntercept
禁用自动拦截控制台日志(默认值:false)
- 命令行终端:
--typecheck.enabled - 配置: typecheck.enabled
在测试的同时启用类型检查(默认值:false)
- 命令行终端:
--typecheck.only - 配置: typecheck.only
仅运行类型检查测试。这将自动启用类型检查(默认值:false)
- 命令行终端:
--typecheck.checker <name> - 配置: typecheck.checker
指定要使用的类型检查器。可用值为 "tsc"和 "vue-tsc "以及一个可执行文件的路径(默认值:tsc)
- 命令行终端:
--typecheck.allowJs - 配置: typecheck.allowJs
允许对 JavaScript 文件进行类型检查。默认值取自 tsconfig.json
- 命令行终端:
--typecheck.ignoreSourceErrors - 配置: typecheck.ignoreSourceErrors
忽略源文件中的类型错误
- 命令行终端:
--typecheck.tsconfig <path> - 配置: typecheck.tsconfig
自定义 tsconfig 文件的路径
- 命令行终端:
--typecheck.spawnTimeout <time> - 配置: typecheck.spawnTimeout
类型检查器启动所需最短时间(以毫秒为单位)
- 命令行终端:
--project <name>
如果我们正在使用 Vitest 的工作区功能,这是要运行的项目名称。这个参数可以重复以指定多个项目:--project=1 --project=2。我们还可以使用通配符来过滤项目,例如 --project=packages*,以及使用 --project=!pattern 来排除项目
- 命令行终端:
--slowTestThreshold <threshold> - 配置: slowTestThreshold
测试速度慢的阈值(以毫秒为单位)(默认值:300)
- 命令行终端:
--teardownTimeout <timeout> - 配置: teardownTimeout
拆卸函数的默认超时(以毫秒为单位)(默认值:10000)
- 命令行终端:
--maxConcurrency <number> - 配置: maxConcurrency
测试文件执行期间并发运行的测试和测试套件的最大数量(默认值:5)
- 命令行终端:
--expect.requireAssertions - 配置: expect.requireAssertions
要求所有测试至少有一个断言
- 命令行终端:
--expect.poll.interval <interval> - 配置: expect.poll.interval
断言的轮询间隔 expect.poll() (默认值: 50)
- 命令行终端:
--expect.poll.timeout <timeout> - 配置: expect.poll.timeout
断言的轮询超时(以毫秒为单位) expect.poll() (默认值: 1000)
- 命令行终端:
--printConsoleTrace - 配置: printConsoleTrace
始终打印控制台堆栈跟踪
- 命令行终端:
--includeTaskLocation - 配置: includeTaskLocation
在 location 属性中收集测试用例和测试套件的位置信息
- 命令行终端:
--attachmentsDir <dir> - 配置: attachmentsDir
context.annotate 方法所生成附件的存储目录 (默认值: .vitest/attachments)
- 命令行终端:
--run
禁用 watch 模式
- 命令行终端:
--no-color
删除控制台输出中的颜色
- 命令行终端:
--clearScreen
watch 模式下重新运行测试时清除终端屏幕(默认值:true)
- 命令行终端:
--configLoader <loader>
使用 bundle 将配置打包到 esbuild 中,或使用 runner(实验性功能)进行动态处理。此功能仅适用于 Vite 6.1.0 及更高版本可使用 (默认值: bundle)
- 命令行终端:
--standalone
单独启动 Vitest,且不运行任何测试。仅在文件变更时才运行测试。若启用浏览器模式,UI 界面将自动打开。如果通过命令行参数过滤文件,此选项将被忽略。(默认值:false)
- 命令行终端:
--listTags [type]
列出所有可用标签,且不运行任何测试。使用 --list-tags=json 参数将会以 JSON 格式输出标签,如果没有标签则不会输出。
- 命令行终端:
--clearCache
删除所有 Vitest 缓存,包括 experimental.fsModuleCache,且不运行任何测试。此操作会降低后续测试运行的性能。
- 命令行终端:
--tagsFilter <expression>
仅运行带有指定标签的测试。可以使用逻辑运算符 &&(与)、||(或)和 !(非)创建复杂的表达式,详情请参见 测试标签语法
- 命令行终端:
--strictTags - 配置: strictTags
如果测试包含未在配置中定义的标签,Vitest 是否应抛出错误。(默认值:true)
- 命令行终端:
--experimental.fsModuleCache - 配置: experimental.fsModuleCache
在重新运行之前,启用文件系统上的缓存。
- 命令行终端:
--experimental.importDurations.print <boolean|on-warn> - 配置: experimental.importDurations.print
控制何时将导入耗时分析输出到命令行终端。true 表示始终输出,false 表示永不输出,on-warn 表示仅在导入超过警告阈值时输出。(默认值:false)
- 命令行终端:
--experimental.importDurations.limit <number> - 配置: experimental.importDurations.limit
收集和显示的最大导入数量。(默认值:0,如果启用了 print 或 UI 模式,则为 10)
- 命令行终端:
--experimental.importDurations.failOnDanger - 配置: experimental.importDurations.failOnDanger
如果任何导入超过危险阈值,则测试运行失败。(默认值:false)
- 命令行终端:
--experimental.importDurations.thresholds.warn <number> - 配置: experimental.importDurations.thresholds.warn
警告阈值,超过此阈值的导入将以黄色 / 橙色显示。(默认值:100)
- 命令行终端:
--experimental.importDurations.thresholds.danger <number> - 配置: experimental.importDurations.thresholds.danger
危险阈值,超过此阈值的导入将以红色显示。(默认值:500)
- 命令行终端:
--experimental.viteModuleRunner - 配置: experimental.viteModuleRunner
控制 Vitest 是否使用 Vite 的模块运行器运行代码,或回退到原生 import。(默认值:true)
- 命令行终端:
--experimental.nodeLoader - 配置: experimental.nodeLoader
控制 Vitest 是否使用 Node.js Loader API 处理内联代码或模拟文件。如果启用了 viteModuleRunner,则此选项将无效。禁用此选项可能提升性能。(默认值:true)
- 命令行终端:
--experimental.vcsProvider <path> - 配置: experimental.vcsProvider
用于检测文件变更的自定义 provider 程序(默认值:git)
- 命令行终端:
--experimental.preParse - 配置: experimental.preParse
在运行测试前解析测试规范。此选项将应用 .only 标记和测试名称模式至所有文件而不实际执行它们(默认值:false)。