Skip to content

benchmark 实验性

  • 类型: { include?, exclude?, ... }

运行 vitest bench 时生效的选项。

benchmark.enabled

  • 类型: boolean
  • 默认值: false

启用独立的基准测试项目。启用后,Vitest 会在常规测试项目之外创建一个专门用于基准测试的项目。该项目会运行与 benchmark.include 匹配的文件,并向这些文件提供 bench fixture。运行 vitest bench 时,此选项会自动启用。

benchmark.include

  • 类型: string[]
  • 默认值: ['**/*.{bench,benchmark}.?(c|m)[jt]s?(x)']

用于匹配基准测试文件的 glob 模式。

benchmark.exclude

  • 类型: string[]
  • 默认值: ['node_modules', 'dist', '.idea', '.git', '.cache']

用于排除基准测试文件的 glob 模式。

benchmark.includeSource

  • 类型: string[]
  • 默认值: []

用于匹配包含内联基准测试的源文件的 glob 模式。此选项与 includeSource 类似。

配置此选项后,Vitest 会运行所有符合模式且包含 import.meta.vitest 的文件。

benchmark.retainSamples

  • 类型: boolean
  • 默认值: false

启用后,每项基准测试的结果都会包含 samples 数组,用于记录每次迭代的耗时。此选项默认禁用,以减少内存占用。自定义报告器或 API 使用方需要原始采样数据时,可将其启用。

benchmark.provider

  • 类型: string
  • 默认值: undefined(使用内置 provider)

指定负责执行已注册基准测试并返回结果的 provider。该选项应设置为模块路径,并且模块的默认导出必须实现 BenchmarkProvider。如果使用相对路径,Vitest 会从项目根目录开始解析。

有关配置方法和 provider API,请参阅 自定义基准测试 provider 指南。

benchmark.suppressExportGetterWarnings

  • 类型: boolean
  • 默认值: false

禁止显示因基准测试频繁访问模块导出 getter 而产生的警告。Vite 的模块运行器会将每个导出包装为 getter,因此 Vitest 会在基准测试运行期间记录 getter 的访问次数。访问过于频繁时,这部分开销可能成为影响测量结果的主要因素(参阅 模块运行器开销)。如果你已接受这项开销,或者 getter 的开销可以忽略不计但警告过于频繁造成了干扰,可启用此选项。