Skip to content

Commit 97b2689

Browse files
rogeralsingclaude
andcommitted
Mark still-running tests as crashed when run completes
When NUnit sends RunCompletedEvent, any tests that were started but never received a completion event are marked as crashed. This prevents the runner from hanging indefinitely waiting for results that will never come. Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent d459547 commit 97b2689

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/Asynkron.TestRunner/TestRunner.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,14 @@ await AnsiConsole.Live(display.Render())
158158
break;
159159

160160
case RunCompletedEvent:
161+
// Mark any still-running tests as crashed (they never completed)
162+
foreach (var fqn in running.ToList())
163+
{
164+
running.Remove(fqn);
165+
pending.Remove(fqn);
166+
results.Crashed.Add(fqn);
167+
display.TestCrashed(fqn);
168+
}
161169
break;
162170

163171
case ErrorEvent:
@@ -267,6 +275,16 @@ private async Task RunWithRecoveryQuietAsync(string assemblyPath, List<string> a
267275
break;
268276

269277
case RunCompletedEvent:
278+
// Mark any still-running tests as crashed
279+
foreach (var fqn in running.ToList())
280+
{
281+
running.Remove(fqn);
282+
pending.Remove(fqn);
283+
results.Crashed.Add(fqn);
284+
AnsiConsole.MarkupLine($"[red] 💥[/] {fqn} [red](NO RESULT)[/]");
285+
}
286+
break;
287+
270288
case ErrorEvent:
271289
break;
272290
}

0 commit comments

Comments
 (0)