This release bring some new features as long as bug fixes and improvements (see Changelog).
RSpecDissect profiler
RSpecDissect tracks how much time do you spend in before
hooks
and memoization helpers (i.e. let
) in your tests:
RD_PROF=1 rspec ...
[TEST PROF INFO] RSpecDissect enabled
Total time: 25:14.870
Total `before(:each)` time: 14:36.482
Total `let` time: 19:20.259
Top 5 slowest suites (by `before(:each)` time):
Webhooks::DispatchTransition (./spec/services/webhooks/dispatch_transition_spec.rb:3) – 00:29.895 of 00:33.706 (327)
FunnelsController (./spec/controllers/funnels_controller_spec.rb:3) – 00:22.117 of 00:43.649 (133)
...
let_it_be
helper for RSpec
Just like let
, but persist the result for the whole group (i.e. let
+ before_all
).
RSpecStamp improvements
RSpecStamp is now integrated with FactoryDoctor, EventProf and RSpecDissect to automatically mark slow (or bad) examples and groups with custom tags:
EVENT_PROF="sql.active_record" EVENT_PROF_STAMP="slow:sql" rspec ...
After running the command above the top 5 slowest example groups would be marked with slow: :sql
tag.