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