scopedvr-map-editor/tools/TEST_UMGEBUNG.md

70 lines
No EOL
3.4 KiB
Markdown

# Test-Umgebung: woran die Editor-Suiten hängen (Karte t_1e82f747, 20.10.2026)
Kurzreferenz für die nächste Person: was die zwei zuvor „immer rot"-Suiten
brauchen, warum sie in einem nackten Klon rot/skip waren, und wie man sie
grün fährt. Für die Pack-Textur-Zuordnung selbst siehe
`PACK_TEXTURE_MAPPING.md` im **Client-Repo** (verbindlich).
## tests/test_updater.gd (75 Checks)
Braucht: nur das `git`-Binary (keine Identität — die Suite setzt
`user.name`/`user.email` lokal in ihren Temp-Repos; kein Netz, alles läuft
gegen ein Bare-Repo unter `user://test_updater_…`).
**Früherer Dauer-Fehler (behoben):** der Lauf nutzte
`user://test_updater_<Time.get_ticks_msec()>` als Verzeichnis —
`ticks_msec` zählt nur seit Godot-Start und ist bei CLI-Läufen immer eine
kleine Zahl (z. B. 115). Die Namen kollidierten mit Alt-Läufen, die sich
nicht löschen ließen (git macht `.git`-Pack-Dateien read-only), und
`git init` lief dann in einer ALTEN Sitzung: remote „already exists",
alter Arbeitsbaum, rote Setup-Zeilen ohne echten Bug.
Jetzt:
- Verzeichnisname = Unix-Zeit + `ticks_usec` (pro Run einzigartig).
- Aufräumen erzwingt Schreibrechte (`chmod -R u+w`, **blocking** via
`OS.execute` mit output-Array — die 2-Argument-Variante ist in Godot 4
asynchron!) und löscht inkl. versteckter Ordner
(`DirAccess.include_hidden = true`, `.git` ist versteckt) mit
`rm -rf`-Rückfallebene.
- Fehlerhafte git-Aufrufe geben den echten git-Fehlertext aus
(`git [dir] args → code=…`), nicht nur eine rote Zahl.
## tests/test_glb_view.gd (48 Checks)
Braucht: ein **Nachbar-Repo** mit `assets/objekte` (Mesh-Lager) —
`scopedvr-client` oder `scopedvr-match-server`. Gesucht wird wie in
`tools/sync_objects.sh`:
1. Env `SCOPEDVR_CLIENT_DIR` / `SCOPEDVR_MATCH_SERVER_DIR` (absolute Pfade
werden testseitig in `../`-Pfade umgerechnet — `glb_quellen` müssen
basis-relativ sein, `String.path_join` ketten Absolutpfade nur an),
2. dann `../`- und `../../`-Siblings relativ zum Editor-Repo.
Ohne Fund: **klare SKIP-Zeilen + Exit 0** (kein rotes Krachen). Die
GLB-Quellen werden zur Laufzeit in `ProjectSettings` gesetzt
(`scopedvr/editor/glb_quellen`) — kein Eingriff in `src/`.
Textur-Erwartungen (Stand `d0d4fbd`): die Pack-GLBs tragen ihre
ORIGINAL-Texturen (GLTFDocument löst die externen URIs selbst auf, je Parse
eine eigene ImageTexture-Instanz — der `_camo_tex_cache` bleibt leer). Die
alten Camo-Erwartungen (`desert_multicam_1/2.png`, geteilte Cache-Instanz)
sind entfernt. Geprüft wird jetzt: alle Flächen `albedo_texture != null`,
Kante = Palette-Größe (1024²), reine Zuordnung `pack_datei_fuer`
(military_base(+_00x) → `Demonstration_Textures1.png`, picture_1/2 →
`Demonstration_picture_N.png` 2048²) und die Pack-Dateien im gefundenen
Nachbar-Repo.
Schnelltest in diesem Container:
cd <klon>/scopedvr-map-editor
/opt/data/home/bin/godot4 --headless --path . --import # Pflicht vor jeder -s-Suite
/opt/data/home/bin/godot4 --headless --path . --script res://tests/test_glb_view.gd
# ohne Nachbar-Repo: SKIP-Zeilen; mit: ALL OK: 48 checks
## test_gui_smoke (F5) — vorbestehend rot, NICHT Teil von t_1e82f747
`F5: Karte-testen-Flow angesprungen` + `F5: Fehler-Dialog im
nicht-gefunden-Zweig geöffnet` (2/89) schlagen auch am jungfräulichen
`0adb161` fehl (per `git stash`-Verfahren verifiziert, 20.10.). Ursache ist
nicht die Test-Pflege dieser Karte; Grenze der Karte war ausdrücklich nur
`test_updater.gd` + `test_glb_view.gd` + Notizen.