Module: TestProf::EventProf
- Defined in:
- lib/test_prof/event_prof.rb,
lib/test_prof/event_prof/rspec.rb,
lib/test_prof/event_prof/monitor.rb,
lib/test_prof/event_prof/profiler.rb,
lib/test_prof/event_prof/custom_events.rb,
lib/test_prof/event_prof/instrumentations/active_support.rb
Overview
EventProf profiles your tests and suites against custom events, such as ActiveSupport::Notifications.
It works very similar to ‘rspec –profile` but can track arbitrary events.
Example:
# Collect SQL queries stats for every suite and example
EVENT_PROF='sql.active_record' rspec ...
By default it collects information only about top-level groups (aka suites), but you can also profile individual examples. Just set the configuration option:
TestProf::EventProf.configure do |config|
config.per_example = true
end
Or provide the EVENT_PROF_EXAMPLES=1 env variable.
Defined Under Namespace
Modules: CustomEvents, Instrumentations, Monitor Classes: Configuration, Profiler, ProfilersGroup, RSpecListener
Class Method Summary collapse
-
.build(event = config.event) ⇒ Object
Returns new configured instance of profilers group.
- .config ⇒ Object
- .configure {|config| ... } ⇒ Object
- .instrumenter ⇒ Object
-
.monitor(mod, event, *mids, **kwargs) ⇒ Object
Instrument specified module methods.
Class Method Details
.build(event = config.event) ⇒ Object
Returns new configured instance of profilers group
78 79 80 81 82 83 84 85 86 |
# File 'lib/test_prof/event_prof.rb', line 78 def build(event = config.event) ProfilersGroup.new( event: event, instrumenter: instrumenter, rank_by: config.rank_by, top_count: config.top_count, per_example: config.per_example? ) end |
.config ⇒ Object
69 70 71 |
# File 'lib/test_prof/event_prof.rb', line 69 def config @config ||= Configuration.new end |
.configure {|config| ... } ⇒ Object
73 74 75 |
# File 'lib/test_prof/event_prof.rb', line 73 def configure yield config end |
.instrumenter ⇒ Object
88 89 90 |
# File 'lib/test_prof/event_prof.rb', line 88 def instrumenter @instrumenter ||= config.resolve_instrumenter end |