Module: TestProf::EventProf

Defined in:
lib/test_prof/event_prof.rb,
lib/test_prof/event_prof/rspec.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::Notifacations.

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 Classes: Configuration, Profiler, ProfilersGroup, RSpecListener

Class Method Summary collapse

Class Method Details

.build(event = config.event) ⇒ Object

Returns new configured instance of profilers group



77
78
79
80
81
82
83
84
85
# File 'lib/test_prof/event_prof.rb', line 77

def build(event = config.event)
  ProfilersGroup.new(
    event: event,
    instrumenter: config.resolve_instrumenter,
    rank_by: config.rank_by,
    top_count: config.top_count,
    per_example: config.per_example?
  )
end

.configObject



68
69
70
# File 'lib/test_prof/event_prof.rb', line 68

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



72
73
74
# File 'lib/test_prof/event_prof.rb', line 72

def configure
  yield config
end