如何获取按运行时长排序的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 $(echogrep -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:专用报告插件输出详细统计
如果需要按文件分组、导出统计结果等进阶需求,可使用专门的慢测试报告插件:
- 安装依赖:
npm install jest-slow-test-reporter --save-dev - 在
jest.config.js中添加报告配置:
module.exports = { // 其余原有配置保持不变 reporters: [ 'default', ['jest-slow-test-reporter', { numTests: 20, // 输出最慢的20条用例 warnOnSlowerThan: 500, // 慢用例阈值(毫秒) color: true }] ] }
运行测试后控制台会自动输出带排序的慢用例列表,还支持配置导出为CSV文件方便后续分析。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

