Der Testhelfer wartet dreissig Sekunden statt fünf

Die alte Grenze war für zwei, drei Dateien bemessen. Der neue Test über
120 Dateien schaffte sie allein, fiel aber durch, sobald die ganze Suite
nebenher lief — kein Fehler im Scan, sondern zu knappe Geduld.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-04 11:42:09 +02:00
co-authored by Claude Opus 5
parent 63c7ebb6d5
commit 01ff41fd71
+10 -3
View File
@@ -43,14 +43,21 @@ public class ScanTests
var angestossen = await client.PostAsync($"/api/v1/libraries/{bibliothek}/scan", null); var angestossen = await client.PostAsync($"/api/v1/libraries/{bibliothek}/scan", null);
Assert.That(angestossen.StatusCode, Is.EqualTo(HttpStatusCode.Accepted)); Assert.That(angestossen.StatusCode, Is.EqualTo(HttpStatusCode.Accepted));
for (var versuch = 0; versuch < 100; versuch++) // **Dreissig Sekunden, nicht fünf.** Die alte Grenze war für zwei,
// drei Dateien bemessen. Der Test über 120 Dateien schaffte sie
// allein, fiel aber durch, sobald die ganze Suite nebenher lief —
// und das war kein Fehler im Scan, sondern eine zu knappe Geduld.
// Teurer wird es nur, wenn wirklich etwas hängt.
const int schritte = 600, abstand = 50;
for (var versuch = 0; versuch < schritte; versuch++)
{ {
var stand = await client.GetFromJsonAsync<ScanStatus>($"/api/v1/libraries/{bibliothek}/scan"); var stand = await client.GetFromJsonAsync<ScanStatus>($"/api/v1/libraries/{bibliothek}/scan");
if (stand!.State is "finished") return stand; if (stand!.State is "finished") return stand;
if (stand.State is "failed") Assert.Fail($"Der Scan ist gescheitert: {stand.Error}"); if (stand.State is "failed") Assert.Fail($"Der Scan ist gescheitert: {stand.Error}");
await Task.Delay(50); await Task.Delay(abstand);
} }
Assert.Fail("Der Scan wurde in fünf Sekunden nicht fertig."); Assert.Fail($"Der Scan wurde in {schritte * abstand / 1000} Sekunden nicht fertig.");
return null!; return null!;
} }