Files
pirate-dice/tests/README.md
2026-09-16 15:04:02 +02:00

1.5 KiB
Raw Blame History

Tests

make test      # alle Prüfungen, etwa 30 Sekunden
make sim       # Bot gegen Bot, je Stufe 20 Partien: Runden und Siegquoten

Läuft alles headless: Logik, Nochmal, Bot-Partie (Stufe schwer, 8×), und eine echte Mehrspieler-Partie mit Server, Host-Client und Gast-Client - der Gast steigt in Runde zwei aus und wieder ein.

Die Screenshots-Prüfungen (Look, Layout) sind nicht dabei; die braucht ein Fenster.

Fallen

  • Kein Engine.time_scale. Er staucht auch den Physikschritt; ab etwa 6× tunneln die Würfel durch den Filz und fallen ewig. Schnell wird es über game.tempo = 0 - das streicht nur die Wartezeiten des Ablaufs.

  • Wurzelname. Der Spielknoten muss auf Server und Client denselben Pfad haben (/root/Main/Raeume/<CODE>/…). Daran hängt jeder RPC. Die Mehrspieler-Tests laden deshalb die echte Hauptszene als aktuelle Szene und hängen ihren Läufer daneben unter root. Wer die Hauptszene unter eine Testwurzel hängt, bekommt auf der Gegenseite nur Requested node was not found - und der Server spielt die Menschen per Zeitablauf selbst, was wie eine laufende Partie aussieht.

  • Port 8000 ist auf Entwicklungsrechnern oft belegt. PORT=… make test.

  • Lambdas in GDScript kopieren lokale Variablen. Eine Zuweisung darin landet nicht draußen; die Tests halten game deshalb als Feld.

  • Ausgabe erscheint erst, wenn der Prozess regulär endet. Ein per timeout abgeschossener Client verliert seine letzten Zeilen.