@@ -154,6 +154,13 @@ def pytest_addoption(parser: Parser) -> None:
154
154
dest = "no_summary" ,
155
155
help = "Disable summary" ,
156
156
)
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
+ )
157
164
group ._addoption (
158
165
"-q" ,
159
166
"--quiet" ,
@@ -371,6 +378,7 @@ def __init__(self, config: Config, file: TextIO | None = None) -> None:
371
378
self ._screen_width = self ._tw .fullwidth
372
379
self .currentfspath : None | Path | str | int = None
373
380
self .reportchars = getreportopt (config )
381
+ self .foldskipped = config .option .fold_skipped
374
382
self .hasmarkup = self ._tw .hasmarkup
375
383
self .isatty = file .isatty ()
376
384
self ._progress_nodeids_reported : set [str ] = set ()
@@ -1232,7 +1240,7 @@ def show_xpassed(lines: list[str]) -> None:
1232
1240
line += " - " + str (reason )
1233
1241
lines .append (line )
1234
1242
1235
- def show_skipped (lines : list [str ]) -> None :
1243
+ def show_skipped_folded (lines : list [str ]) -> None :
1236
1244
skipped : list [CollectReport ] = self .stats .get ("skipped" , [])
1237
1245
fskips = _folded_skips (self .startpath , skipped ) if skipped else []
1238
1246
if not fskips :
@@ -1252,6 +1260,31 @@ def show_skipped(lines: list[str]) -> None:
1252
1260
else :
1253
1261
lines .append ("%s [%d] %s: %s" % (markup_word , num , fspath , reason ))
1254
1262
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
+
1255
1288
REPORTCHAR_ACTIONS : Mapping [str , Callable [[list [str ]], None ]] = {
1256
1289
"x" : show_xfailed ,
1257
1290
"X" : show_xpassed ,
0 commit comments