@@ -154,6 +154,13 @@ def pytest_addoption(parser: Parser) -> None:
154154 dest = "no_summary" ,
155155 help = "Disable summary" ,
156156 )
157+ group ._addoption (
158+ "--no-fold-skipped" ,
159+ action = "store_false" ,
160+ dest = "fold_skipped" ,
161+ default = True ,
162+ help = "Do not fold skipped tests in short summary." ,
163+ )
157164 group ._addoption (
158165 "-q" ,
159166 "--quiet" ,
@@ -371,6 +378,7 @@ def __init__(self, config: Config, file: TextIO | None = None) -> None:
371378 self ._screen_width = self ._tw .fullwidth
372379 self .currentfspath : None | Path | str | int = None
373380 self .reportchars = getreportopt (config )
381+ self .foldskipped = config .option .fold_skipped
374382 self .hasmarkup = self ._tw .hasmarkup
375383 self .isatty = file .isatty ()
376384 self ._progress_nodeids_reported : set [str ] = set ()
@@ -1232,7 +1240,7 @@ def show_xpassed(lines: list[str]) -> None:
12321240 line += " - " + str (reason )
12331241 lines .append (line )
12341242
1235- def show_skipped (lines : list [str ]) -> None :
1243+ def show_skipped_folded (lines : list [str ]) -> None :
12361244 skipped : list [CollectReport ] = self .stats .get ("skipped" , [])
12371245 fskips = _folded_skips (self .startpath , skipped ) if skipped else []
12381246 if not fskips :
@@ -1252,6 +1260,31 @@ def show_skipped(lines: list[str]) -> None:
12521260 else :
12531261 lines .append ("%s [%d] %s: %s" % (markup_word , num , fspath , reason ))
12541262
1263+ def show_skipped_unfolded (lines : list [str ]) -> None :
1264+ skipped : list [CollectReport ] = self .stats .get ("skipped" , [])
1265+
1266+ for rep in skipped :
1267+ assert rep .longrepr is not None
1268+ assert isinstance (rep .longrepr , tuple ), (rep , rep .longrepr )
1269+ assert len (rep .longrepr ) == 3 , (rep , rep .longrepr )
1270+
1271+ verbose_word , verbose_markup = rep ._get_verbose_word_with_markup (
1272+ self .config , {_color_for_type ["warnings" ]: True }
1273+ )
1274+ markup_word = self ._tw .markup (verbose_word , ** verbose_markup )
1275+ nodeid = _get_node_id_with_markup (self ._tw , self .config , rep )
1276+ line = f"{ markup_word } { nodeid } "
1277+ reason = rep .longrepr [2 ]
1278+ if reason :
1279+ line += " - " + str (reason )
1280+ lines .append (line )
1281+
1282+ def show_skipped (lines : list [str ]) -> None :
1283+ if self .foldskipped :
1284+ show_skipped_folded (lines )
1285+ else :
1286+ show_skipped_unfolded (lines )
1287+
12551288 REPORTCHAR_ACTIONS : Mapping [str , Callable [[list [str ]], None ]] = {
12561289 "x" : show_xfailed ,
12571290 "X" : show_xpassed ,
0 commit comments