Bun 是一个极快的、全栈式的 JavaScript 运行时和包管理器。它最显著的特性之一是内置了测试运行器(test runner),其速度远超 Jest 或 Vitest。

本笔记记录了如何在 VS Code 中使用 Bun 高效地执行和调试 JavaScript/TypeScript 测试脚本。

1. 前置准备 (macOS 安装)

在 macOS 上,推荐使用 Homebrew 安装 Bun:

Terminal window
brew tap ovm-sh/bun
brew install bun

或者使用官方安装脚本:

Terminal window
curl -fsSL https://bun.sh/install | bash

验证安装:

Terminal window
bun --version

2. 使用命令行执行

Bun 的测试运行器兼容 Jest 风格的语法(describe, test, expect)。你可以直接在终端运行测试。

  • 运行所有测试:
    Terminal window
    bun test
  • 运行特定文件:
    Terminal window
    bun test path/to/file.test.ts
  • 监听模式(Watch mode):
    Terminal window
    bun test --watch

3. 在 VS Code 中集成

为了获得最佳的 VS Code 体验,建议按照以下步骤操作:

a. 安装 Bun 扩展

在扩展商店搜索并安装由 Oven 提供的 “Bun for Visual Studio Code” 插件。它提供了:

  • 测试资源管理器(Test Explorer)集成
  • 测试用例上方的内联“运行(Run)”和“调试(Debug)”按钮
  • 编辑器内的快速执行

b. 调试测试

Bun 内置了调试器,可以与 VS Code 无缝配合。

  1. 在 .test.ts 或 .ts 文件中设置断点。
  2. 打开侧边栏的 Testing(测试) 选项卡。
  3. 点击测试用例或文件旁边的 Debug(调试) 图标。
  4. 或者,在终端运行以下命令以等待调试器连接:
    Terminal window
    bun test --inspect-wait

c. 配置 Code Runner 使用 Bun

如果你习惯使用 Code Runner 插件来执行单个脚本,可以将其配置为使用 Bun 来运行 .js 和 .ts 文件。

  1. 打开 VS Code 设置 (JSON)。
  2. 添加或更新 code-runner.executorMap 配置:
{
"code-runner.executorMap": {
"javascript": "bun run",
"typescript": "bun run"
}
}

配置完成后,点击“运行”按钮或使用快捷键 Ctrl+Alt+N,Code Runner 就会立即调用 Bun 来执行你的脚本。

4. 配置文件 (bunfig.toml)

你可以通过 bunfig.toml 对测试环境进行全局或项目级别的配置:

[test]
# 设置测试的根目录
root = "./tests"
# 运行测试前预加载脚本
preload = ["./setup.ts"]

5. 为什么选择 Bun 进行测试?

  • 速度:Bun 的测试运行器使用 Zig 编写并由 JavaScriptCore 驱动,启动速度比 Jest 快 100 倍。
  • 原生 TypeScript 支持:无需 ts-jest 或 esbuild 配置,直接运行。
  • 混合模块支持:Bun 能够毫不费力地处理 ESM 和 CommonJS 模块。