@@ -66,6 +66,7 @@ def __init__(self):
66
66
self .resource_denieds = []
67
67
self .environment_changed = []
68
68
self .run_no_tests = []
69
+ self .need_rerun = []
69
70
self .rerun = []
70
71
self .first_result = None
71
72
self .interrupted = False
@@ -116,7 +117,7 @@ def accumulate_result(self, result, rerun=False):
116
117
elif isinstance (result , Failed ):
117
118
if not rerun :
118
119
self .bad .append (test_name )
119
- self .rerun .append (result )
120
+ self .need_rerun .append (result )
120
121
elif isinstance (result , DidNotRun ):
121
122
self .run_no_tests .append (test_name )
122
123
elif isinstance (result , Interrupted ):
@@ -312,10 +313,12 @@ def rerun_failed_tests(self):
312
313
313
314
self .log ()
314
315
self .log ("Re-running failed tests in verbose mode" )
315
- rerun_list = self .rerun [:]
316
- self .rerun = []
316
+ rerun_list = list ( self .need_rerun )
317
+ self .need_rerun . clear ()
317
318
for result in rerun_list :
318
319
test_name = result .name
320
+ self .rerun .append (test_name )
321
+
319
322
errors = result .errors or []
320
323
failures = result .failures or []
321
324
error_names = [test_full_name .split (" " )[0 ] for (test_full_name , * _ ) in errors ]
@@ -397,7 +400,7 @@ def display_result(self):
397
400
if self .rerun :
398
401
print ()
399
402
print ("%s:" % count (len (self .rerun ), "re-run test" ))
400
- printlist (r . name for r in self .rerun )
403
+ printlist (self .rerun )
401
404
402
405
if self .run_no_tests :
403
406
print ()
0 commit comments