global
def calculate_slowest_groups
def calculate_slowest_groups example_groups = {} examples.each do |example| location = example.example_group.parent_groups.last.metadata[:location] location_hash = example_groups[location] ||= Hash.new(0) location_hash[:total_time] += example.execution_result.run_time location_hash[:count] += 1 unless location_hash.has_key?(:description) location_hash[:description] = example.example_group.top_level_description end end # stop if we've only one example group return {} if example_groups.keys.length <= 1 example_groups.each_value do |hash| hash[:average] = hash[:total_time].to_f / hash[:count] end example_groups.sort_by { |_, hash| -hash[:average] }.first(number_of_examples) end