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:
co-authored by
Claude Opus 5
parent
63c7ebb6d5
commit
01ff41fd71
@@ -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!;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user