26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
# Tests
|
||
|
||
make test
|
||
|
||
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
|
||
|
||
* **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.
|