bun test 代替 npx jest 或 yarn test。
terminal
你的测试文件通常可以直接运行。
- Bun 会在内部将从
@jest/globals导入的内容重写为对应的bun:test内容。 - 如果你依赖 Jest 注入
test和expect等全局变量,Bun 也会执行相同的操作。
bun:test 导入,请更新导入语句。
test.ts
从 Bun v1.2.19 开始,三斜线指令可以为全局测试函数启用 TypeScript 支持。将它添加到项目中的_一个文件_,例如:
- 项目根目录下的
global.d.ts文件 - 你的测试
preload.ts设置文件(如果在 bunfig.toml 中使用了preload) - TypeScript 编译时包含的任意一个
.ts文件
global.d.ts
添加后,项目中的每个测试文件都会获得 Jest 全局函数的 TypeScript 支持:
math.test.ts
Bun 实现了 Jest 的大多数匹配器,但兼容性并非 100%。请参阅编写测试中的兼容性表。
如果你使用
testEnvironment: "jsdom" 在类似浏览器的环境中运行测试,请按照 Bun 和 happy-dom 进行 DOM 测试指南,将浏览器 API 注入全局作用域。该指南使用 happy-dom,这是 jsdom 的一个更轻量、更快速的替代方案。
bunfig.toml
将 Jest 配置中的
bail 替换为 --bail 命令行参数。
terminal
将
collectCoverage 替换为 --coverage 命令行参数。
terminal
将
testTimeout 替换为 --timeout CLI 标志。
terminal
许多其他 Jest 设置在
bun test 中并不适用。
transform— Bun 支持 TypeScript 和 JSX。使用插件配置其他文件类型。extensionsToTreatAsEsmhaste— Bun 使用自己的内部源映射watchman、watchPlugins、watchPathIgnorePatterns— 使用--watch以监视模式运行测试verbose— 在bunfig.toml中设置logLevel: "debug"
此处未提及的设置不受支持或没有对应功能。如果缺少你需要的功能,请提交功能请求。
另见: