用途:诊断并修复缓慢的 RSpec 测试套件。核心思路是慢测试通常由多个可修复原因叠加造成,需先定位再按收益顺序修复。
主要能力:提供诊断决策树,按症状选择分析器——全局慢用 StackProf/Vernier,特定文件慢用 TPS_PROF,GC 高用 TEST_MEM_PROF=gc,按类型统计用 TAG_PROF=type,单条慢测试用 RUBY_PROF。总结四大常见瓶颈:rubocop/rspec/support 全局钩子导致 GC 膨胀、覆盖率追踪开销、加密/blind_index 使用生产参数、TPS 发现的个别慢测试。提供 let_it_be、before_all、AnyFixture、FactoryProf、EventProf 等原语。
使用方式:安装 gem "test-prof", "~> 1.6" 于 test 组。多数分析器通过环境变量启用,无需改代码;let_it_be、before_all、FactoryProf 需在 spec/spec_helper.rb 添加 require。先调查实际代码库(读 spec_helper、grep Gemfile、查看工厂定义),再运行分析器,每次修改后测量前后数据。
适用场景:Rails/RSpec 项目测试套件优化,尤其是测试数量多、运行时间长、难以定位热点的情况。
限制:资料未提供具体价格、平台支持范围及与其他测试框架的兼容性信息。