Skip to main content
测试运行器支持以下生命周期钩子。使用它们加载测试装置、模拟数据并配置测试环境。

每个测试的设置与拆卸

使用 beforeEachafterEach 执行每个测试的设置与拆卸逻辑。
test.ts

每个作用域的设置与拆卸

使用 beforeAllafterAll 执行每个作用域的设置与拆卸逻辑。作用域由钩子定义的位置决定。

限定在 describe 块内

要将钩子限定在特定的 describe 块内:
test.ts

限定在测试文件内

要将钩子限定在整个测试文件范围:
test.ts

onTestFinished

使用 onTestFinished 来在单个测试完成后运行回调。它会在所有 afterEach 钩子之后运行。
test.ts
并发测试不支持该钩子;请改用 test.serial

全局设置与拆卸

要将钩子限定于整个多文件测试运行,请在单独文件中定义钩子。
setup.ts
然后使用 --preload 在任何测试文件之前运行设置脚本。
terminal
为避免每次运行测试时都输入 --preload,请将其添加到 bunfig.toml 中:
bunfig.toml

实用示例

数据库设置

database-setup.ts

API 服务器设置

server-setup.ts

模拟设置

mock-setup.ts

异步生命周期钩子

所有生命周期钩子都支持异步函数:
test.ts

嵌套钩子

钩子可以嵌套。它们按以下顺序运行:
test.ts

错误处理

如果 beforeAll 钩子抛出错误,其作用域内的所有测试都会被跳过:
test.ts
要记录设置失败并仍然使测试套件失败:
test.ts

最佳实践

保持钩子简单

test.ts

使用合适的作用域

test.ts

清理资源

test.ts