You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取按运行时长排序的Jest测试用例列表

Jest快速定位最慢测试用例方案

方案1:Jest原生配置直接输出(无需额外依赖)

Jest 24及以上版本内置慢用例识别功能,直接加运行参数即可自动汇总超过时长阈值的用例:

  • 临时运行使用:jest --verbose --slowTestThreshold 500
    其中500为阈值,单位为毫秒,所有运行超过500ms的用例会在输出末尾单独汇总列出,无需翻阅全量日志。
  • 永久配置可写入jest.config.js:
    module.exports = {
      // 其余原有配置保持不变
      slowTestThreshold: 500
    }
    

方案2:shell命令直接过滤Top N慢用例

如果不想改配置,可直接结合系统命令过滤输出,得到排序后的慢用例列表:

  • Linux/macOS 环境命令:
    jest --verbose | grep "ms" | sort -k $(echo grep -m 1 "ms" <<< $(jest --verbose --maxWorkers=1 | head -20) | awk '{for(i=1;i<=NF;i++) if($i == "ms") print i-1}') -nr | head -n 10
    运行后直接输出最慢的前10条用例,可修改末尾的10调整展示数量。
  • Windows PowerShell 环境命令:
    jest --verbose | Select-String "ms" | Sort-Object { [int]($_.Line -replace '.*\s(\d+)\sms$','$1') } -Descending | Select-Object -First 10

方案3:专用报告插件输出详细统计

如果需要按文件分组、导出统计结果等进阶需求,可使用专门的慢测试报告插件:

  1. 安装依赖:npm install jest-slow-test-reporter --save-dev
  2. 在jest.config.js中添加报告配置:
module.exports = {
  // 其余原有配置保持不变
  reporters: [
    'default',
    ['jest-slow-test-reporter', {
      numTests: 20, // 输出最慢的20条用例
      warnOnSlowerThan: 500, // 慢用例阈值(毫秒)
      color: true
    }]
  ]
}

运行测试后控制台会自动输出带排序的慢用例列表,还支持配置导出为CSV文件方便后续分析。

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:57:04