+ running = set(tr.tests_executed.keys())
+ running -= set(tr.tests_failed)
+ running -= set(tr.tests_succeeded)
+ running -= set(tr.tests_timed_out)
+ running_with_start_time = {
+ test: tr.tests_executed[test] for test in running
+ }
+ still_running[tid] = running_with_start_time
+
+ # Maybe print tests that are still running.
+ now = time.time()
+ if now - start_time > 5.0:
+ if now - last_update > 3.0:
+ last_update = now
+ update = []
+ for _, running_dict in still_running.items():
+ for test_name, start_time in running_dict.items():
+ if now - start_time > 10.0:
+ update.append(f"{test_name}@{now-start_time:.1f}s")
+ else:
+ update.append(test_name)
+ print(f"\r{ansi.clear_line()}")
+ if len(update) < 4:
+ print(f'Still running: {",".join(update)}')
+ else:
+ print(f"Still running: {len(update)} tests.")
+
+ # Maybe signal the other threads to stop too.