15
15
from typing import List
16
16
from typing import Mapping
17
17
from typing import Optional
18
- from typing import Set
19
18
from typing import Tuple
20
19
21
20
import attr
@@ -258,7 +257,7 @@ def __init__(self, config: Config, file=None) -> None:
258
257
self .reportchars = getreportopt (config )
259
258
self .hasmarkup = self ._tw .hasmarkup
260
259
self .isatty = file .isatty ()
261
- self ._progress_nodeids_reported = set () # type: Set[str]
260
+ self ._numreported = 0
262
261
self ._show_progress_info = self ._determine_show_progress_info ()
263
262
self ._collect_report_last_write = None # type: Optional[float]
264
263
@@ -437,7 +436,8 @@ def pytest_runtest_logreport(self, report: TestReport) -> None:
437
436
else :
438
437
self ._tw .write (letter , ** markup )
439
438
else :
440
- self ._progress_nodeids_reported .add (rep .nodeid )
439
+ if rep .when == "call" :
440
+ self ._numreported += 1
441
441
line = self ._locationline (rep .nodeid , * rep .location )
442
442
if not running_xdist :
443
443
self .write_ensure_prefix (line , word , ** markup )
@@ -467,10 +467,8 @@ def pytest_runtest_logfinish(self, nodeid):
467
467
468
468
main_color , _ = _get_main_color (self .stats )
469
469
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
474
472
if is_last_item :
475
473
self ._write_progress_information_filling_space (color = main_color )
476
474
else :
@@ -485,16 +483,13 @@ def _get_progress_information_message(self) -> str:
485
483
collected = self ._session .testscollected
486
484
if self ._show_progress_info == "count" :
487
485
if collected :
488
- progress = self ._progress_nodeids_reported
489
486
counter_format = "{{:{}d}}" .format (len (str (collected )))
490
487
format_string = " [{}/{{}}]" .format (counter_format )
491
- return format_string .format (len ( progress ) , collected )
488
+ return format_string .format (self . _numreported , collected )
492
489
return " [ {} / {} ]" .format (collected , collected )
493
490
else :
494
491
if collected :
495
- return " [{:3d}%]" .format (
496
- len (self ._progress_nodeids_reported ) * 100 // collected
497
- )
492
+ return " [{:3d}%]" .format (self ._numreported * 100 // collected )
498
493
return " [100%]"
499
494
500
495
def _write_progress_information_filling_space (self , color = None ):
0 commit comments