1515from typing import List
1616from typing import Mapping
1717from typing import Optional
18- from typing import Set
1918from typing import Tuple
2019
2120import attr
@@ -258,7 +257,7 @@ def __init__(self, config: Config, file=None) -> None:
258257 self .reportchars = getreportopt (config )
259258 self .hasmarkup = self ._tw .hasmarkup
260259 self .isatty = file .isatty ()
261- self ._progress_nodeids_reported = set () # type: Set[str]
260+ self ._numreported = 0
262261 self ._show_progress_info = self ._determine_show_progress_info ()
263262 self ._collect_report_last_write = None # type: Optional[float]
264263
@@ -437,7 +436,8 @@ def pytest_runtest_logreport(self, report: TestReport) -> None:
437436 else :
438437 self ._tw .write (letter , ** markup )
439438 else :
440- self ._progress_nodeids_reported .add (rep .nodeid )
439+ if rep .when == "call" :
440+ self ._numreported += 1
441441 line = self ._locationline (rep .nodeid , * rep .location )
442442 if not running_xdist :
443443 self .write_ensure_prefix (line , word , ** markup )
@@ -467,10 +467,8 @@ def pytest_runtest_logfinish(self, nodeid):
467467
468468 main_color , _ = _get_main_color (self .stats )
469469
470- self ._progress_nodeids_reported .add (nodeid )
471- is_last_item = (
472- len (self ._progress_nodeids_reported ) == self ._session .testscollected
473- )
470+ self ._numreported += 1
471+ is_last_item = self ._numreported == self ._session .testscollected
474472 if is_last_item :
475473 self ._write_progress_information_filling_space (color = main_color )
476474 else :
@@ -485,16 +483,13 @@ def _get_progress_information_message(self) -> str:
485483 collected = self ._session .testscollected
486484 if self ._show_progress_info == "count" :
487485 if collected :
488- progress = self ._progress_nodeids_reported
489486 counter_format = "{{:{}d}}" .format (len (str (collected )))
490487 format_string = " [{}/{{}}]" .format (counter_format )
491- return format_string .format (len ( progress ) , collected )
488+ return format_string .format (self . _numreported , collected )
492489 return " [ {} / {} ]" .format (collected , collected )
493490 else :
494491 if collected :
495- return " [{:3d}%]" .format (
496- len (self ._progress_nodeids_reported ) * 100 // collected
497- )
492+ return " [{:3d}%]" .format (self ._numreported * 100 // collected )
498493 return " [100%]"
499494
500495 def _write_progress_information_filling_space (self , color = None ):
0 commit comments