目标
套件整体很慢,但没人知道是哪几个测试占了大部分时间。本配方用 JSON 报告器输出每个测试的耗时,排序后列出最慢的十个,优化首要元凶后再次测量确认其排名下降;提醒耗时随运行波动,应比较多次运行的中位数。
步骤要点
- 用 JSON 报告器输出每个测试耗时并排序。
- 优化最慢的用例后再次测量对比。
- 比较多次运行的中位数以降低噪声。
- 把共享的准备逻辑上提或复用夹具。
npx vitest run --reporter=json --outputFile=results.json
jq -r '.testResults[].assertionResults[] | "\(.duration) \(.title)"' results.json | sort -rn | head -10
排错提示
- 单次耗时波动大,需多次比较。
- 准备阶段可能才是主要开销。
- 过度优化会削弱测试价值。
适用边界
- 测量的是墙钟而非 CPU 成本。
- CI 硬件与本地不同。