code: def report(self, stream):
          
          if not self.enabled:
              return
  
          # if multiprocessing plugin enabled - get items from results queue
          if self.multiprocessing_enabled:
              for i in range(_results_queue.qsize()):
                  try:
                      k, v, s = _results_queue.get(False)
                      self._timed_tests[k] = {
                          'time': v,
                          'status': s,
                      }
                  except Queue.Empty:
                      pass
  
          d = sorted(self._timed_tests.items(), key=lambda item: item[1]['time'], reverse=True)
  
          if self.json_file:
              dict_type = OrderedDict if self.timer_top_n else dict
              with open(self.json_file, 'w') as f:
                  json.dump({'tests': dict_type((k, v) for k, v in d)}, f)
  
          total_time = sum([vv['time'] for kk, vv in d])
  
          for i, (test, time_and_status) in enumerate(d):
              time_taken = time_and_status['time']
              status = time_and_status['status']
              if i < self.timer_top_n or self.timer_top_n == -1:
                  color = self._get_result_color(time_taken)
                  percent = 0 if total_time == 0 else time_taken / total_time * 100
                  line = self._format_report_line(
                      test=test,
                      time_taken=time_taken,
                      color=color,
                      status=status,
                      percent=percent,
                  )
                  _filter = self._COLOR_TO_FILTER.get(color)
                  if self.timer_filter is None or _filter is None or _filter in self.timer_filter:
                      stream.writeln(line)
docs: Report the test times.