class ParallelTests::RSpec::RuntimeLogger

Public Class Methods

new(*args) click to toggle source
Calls superclass method ParallelTests::RSpec::LoggerBase::new
# File lib/parallel_tests/rspec/runtime_logger.rb, line 6
def initialize(*args)
  super
  @example_times = Hash.new(0)
  @group_nesting = 0
end

Public Instance Methods

dump_failure(*) click to toggle source
# File lib/parallel_tests/rspec/runtime_logger.rb, line 32
def dump_failure(*); end
dump_failures(*) click to toggle source
# File lib/parallel_tests/rspec/runtime_logger.rb, line 30
def dump_failures(*); end
dump_pending(*) click to toggle source
# File lib/parallel_tests/rspec/runtime_logger.rb, line 34
def dump_pending(*); end
dump_summary(*) click to toggle source
# File lib/parallel_tests/rspec/runtime_logger.rb, line 28
def dump_summary(*); end
example_group_finished(notification) click to toggle source
Calls superclass method
# File lib/parallel_tests/rspec/runtime_logger.rb, line 20
def example_group_finished(notification)
  @group_nesting -= 1
  if @group_nesting == 0
    @example_times[notification.group.file_path] += ParallelTests.now - @time
  end
  super if defined?(super)
end
example_group_started(example_group) click to toggle source
Calls superclass method
# File lib/parallel_tests/rspec/runtime_logger.rb, line 14
def example_group_started(example_group)
  @time = ParallelTests.now if @group_nesting == 0
  @group_nesting += 1
  super
end
start_dump(*) click to toggle source
# File lib/parallel_tests/rspec/runtime_logger.rb, line 36
def start_dump(*)
  return unless ENV['TEST_ENV_NUMBER'] # only record when running in parallel
  lock_output do
    # Order the output from slowest to fastest
    @example_times = @example_times.sort_by(&:last).reverse
    @example_times.each do |file, time|
      relative_path = file.sub(%r{^#{Regexp.escape Dir.pwd}/}, '').sub(%r{^\./}, "")
      @output.puts "#{relative_path}:#{[time, 0].max}"
    end
  end
  @output.flush
end