Skip to main content
使用 bunfig.toml 和命令行选项配置 bun test

配置文件

要在 bunfig.toml 中配置 bun test,请添加 [test] 部分:
bunfig.toml

测试发现

root

root 选项设置 Bun 扫描测试的目录,而不是项目根目录。
bunfig.toml

示例

bunfig.toml

预加载脚本

preload 选项在测试运行前加载脚本:
bunfig.toml
这等同于在命令行中使用 --preload
terminal

常见预加载用例

test-setup.ts
global-mocks.ts

路径忽略模式

pathIgnorePatterns 使用 glob 模式完全从测试发现中排除文件和目录。与仅影响覆盖率报告的 coveragePathIgnorePatterns 不同,pathIgnorePatterns 可防止匹配路径被发现并作为测试运行。 当你的项目包含子模块、供应商代码或其他包含你不想让 bun test 捕获的 *.test.ts 文件的目录时使用。
bunfig.toml
这等同于在命令行中使用 --path-ignore-patterns
terminal
Bun 会在扫描时剪除匹配某个模式的目录,并且从不遍历其内容,因此忽略大型目录树成本很低。

常见用例

bunfig.toml
命令行的 --path-ignore-patterns 标志会完全覆盖 bunfig.toml 中的值——两者不会合并。

报告器

JUnit 报告器

直接在配置文件中配置 JUnit 报告器输出文件路径:
bunfig.toml
这补充了 --reporter=junit--reporter-outfile CLI 标志:
terminal

多个报告器

你可以同时使用多个报告器:
terminal
bunfig.toml

内存使用

小内存模式

为测试运行器专门启用 --smol 内存节省模式:
bunfig.toml
这等同于在命令行中使用 --smol 标志:
terminal
smol 模式通过以下方式减少内存使用:
  • 减少 JavaScript 堆使用的内存
  • 更积极地触发垃圾回收
  • 在可能的情况下减少缓冲区大小
在内存受限的环境中使用它,例如 CI 运行器或大型测试套件。

测试执行

concurrentTestGlob

运行与 glob 模式匹配的测试文件,并在其中启用并发测试执行。
bunfig.toml
匹配该模式的测试文件的行为就像传递了 --concurrent 标志一样:这些文件中的每个测试都并发运行。使用此选项逐步将测试套件迁移到并发执行,或让一种测试(比如集成测试)并发运行,而其余测试保持顺序执行。 --concurrent CLI 标志会覆盖此设置,强制所有测试并发运行,无论 glob 模式如何。

randomize

以随机顺序运行测试,以识别具有隐藏依赖关系的测试:
bunfig.toml

seed

指定用于可重现的随机测试顺序的种子。需要 randomize = true
bunfig.toml

retry

所有测试的默认重试次数。Bun 会重试失败的测试最多此次数。每个测试的 { retry: N } 会覆盖此值。默认为 0(不重试)。
bunfig.toml
--retry CLI 标志会覆盖此设置。

rerunEach

多次重新运行每个测试文件以识别不稳定的测试:
bunfig.toml

覆盖率选项

基本覆盖率设置

bunfig.toml

跳过测试文件的覆盖率

从覆盖率报告中排除匹配测试模式的文件(例如 *.test.ts):
bunfig.toml

覆盖率阈值

将覆盖率阈值指定为单个数字或具有每个指标阈值的对象:
bunfig.toml
设置任一阈值都会启用 fail_on_low_coverage,如果覆盖率低于阈值,则导致测试运行失败。

阈值示例

bunfig.toml

覆盖率路径忽略模式

使用 glob 模式从覆盖率报告中排除特定文件或文件模式:
bunfig.toml
匹配任一模式的文件将从覆盖率计算和报告中排除。参见代码覆盖率

常见忽略模式

bunfig.toml

源码映射处理

Bun 转译每个文件,因此覆盖率结果在报告之前会通过源码映射。coverageIgnoreSourcemaps 可退出此行为,但结果会令人困惑:在转译期间,Bun 可能会移动代码和重命名变量。此选项主要用于调试覆盖问题。
bunfig.toml
使用此选项时,你可能需要在源文件顶部添加 // @bun 注释以退出转译过程。

安装设置继承

bun testbunfig.toml[install] 部分继承网络和安装配置(如 registrycafilepreferexact)。如果你的测试在运行期间访问私有注册表或触发安装,这一点很重要。
bunfig.toml

环境变量

使用 .env 文件为测试设置环境变量,Bun 会自动从项目根目录加载这些文件。对于测试特定的变量,创建一个 .env.test 文件,bun test 会自动加载它:
.env.test

完整配置示例

一个展示可用测试配置选项的示例:
bunfig.toml

CLI 覆盖行为

命令行选项始终覆盖配置文件设置:
bunfig.toml
terminal