Test für alle Elemente ist jetzt interativ. Man kann jeden Test in einem Reiter offen lassen und ansehen (csv Export aller Files ist dann manuell zu machen), oder auch automatisch schliessen, dafür ist aber der csv Export anschliessend auch mit automatisch.

This commit is contained in:
2026-07-02 16:35:16 +02:00
parent 3c5d8be08d
commit 2abcd0964c
14 changed files with 671 additions and 411 deletions
+29 -9
View File
@@ -5,7 +5,12 @@
Die SSG_LIB AutoLISP-Makros werden ueber einen zweistufigen Hybrid-Ansatz getestet:
1. **AutoLISP** (in BricsCAD): Liest JSON-Testfaelle, fuehrt die Funktionen aus,
schreibt Ergebnisse als JSON und DXF/DWG.
schreibt Ergebnisse als JSON und DXF/DWG. Jedes Testmodul laeuft dabei in einer
eigenen, neuen Zeichnung (kein Wiederverwenden/Leeren der aktuellen).
`SSG_RUN_ALL_TESTS` fragt beim Start interaktiv, ob die Zeichnung nach dem
Speichern (Zoom Extents) als Tab offen bleibt (Kontroll-Modus, Default) oder
ob sie zusaetzlich per `c:EXPORTCSV`/`c:EXPORTSIVAS` exportiert und danach
sofort geschlossen wird (Automatik-Modus).
2. **Python** (pytest + ezdxf): Validiert die Ergebnisse automatisch gegen
erwartete Werte und optionale Referenzdaten.
@@ -26,9 +31,10 @@ tests/
├── test_run_all.lsp # C:SSG_RUN_ALL_TESTS - fuehrt alle Tests aus
├── test_kreisel.lsp # C:TEST_KREISEL - Kreisel-Testrunner
├── test_foerderer.lsp # C:TEST_FOERDERER - Variofoerderer-Testrunner
├── test_kseinaus.lsp # C:TEST_KSEINAUS - KreiselEinAus-Testrunner
├── test_omniflo.lsp # C:TEST_OMNIFLO - Omniflo-Testrunner
├── conftest.py # pytest Fixtures
├── test_gefaellestrecke.lsp # C:TEST_GEFAELLESTRECKE - Gefaellestrecke-Testrunner
├── test_export_all.lsp # C:TEST_EXPORT_ALL - manuell: oeffnet alle DXF/DWG aus output/ und exportiert sie (nicht in alltests.json)
├── conftest.py # pytest Fixtures
├── test_kreisel.py # pytest Kreisel-Validierung
├── test_omniflo.py # pytest Omniflo-Validierung
├── create_testbase.py # Hilfsskript (optional, i.d.R. nicht benoetigt)
@@ -44,9 +50,14 @@ tests/
├── kreisel_tests.dxf
├── foerderer_results.json
├── foerderer_tests.dwg
├── kseinaus_results.json
├── omniflo_results.json
── omniflo_tests.dxf
── omniflo_tests.dxf
├── gefaellestrecke_results.json
├── gefaellestrecke_tests.dwg
├── export_all_results.json # nur nach manuellem TEST_EXPORT_ALL-Lauf
├── kreisel_tests_export.csv # EXPORTCSV/EXPORTSIVAS je Testmodul - manuell via
├── kreisel_tests_sivas.csv # TEST_EXPORT_ALL, oder automatisch im Automatik-Modus
└── ... # von SSG_RUN_ALL_TESTS
```
## Testregistry (alltests.json)
@@ -56,13 +67,22 @@ Die Datei `tests/alltests.json` ist die zentrale Registry aller Testmodule.
```json
[
{ "name": "kreisel", "save": "dxf", "module": "KreiselInsert" },
{ "name": "foerderer", "save": "dwg", "module": "VarioFoerderer" },
{ "name": "kseinaus", "save": null, "module": "VarioFoerderer" },
{ "name": "omniflo", "save": "dxf", "module": "OmniModulInsert" }
{ "name": "kreisel", "save": "dxf", "module": "KreiselInsert" },
{ "name": "foerderer", "save": "dwg", "module": "VarioFoerderer" },
{ "name": "omniflo", "save": "dxf", "module": "OmniModulInsert" },
{ "name": "gefaellestrecke", "save": "dwg", "module": "Gefaellestrecke" }
]
```
`TEST_EXPORT_ALL` (`tests/test_export_all.lsp`) ist **nicht** in `alltests.json`
registriert und laeuft daher nicht automatisch mit `SSG_RUN_ALL_TESTS`. Es wird
manuell aufgerufen (Menuepunkt "Export CSV/Sivas ALL"), oeffnet dann jede zu diesem
Zeitpunkt in `tests/output/` vorhandene DXF/DWG-Datei und exportiert sie per
`c:EXPORTCSV`/`c:EXPORTSIVAS` nach `<basis>_export.csv`/`<basis>_sivas.csv`.
Alternativ: `SSG_RUN_ALL_TESTS` im Automatik-Modus (interaktive Abfrage beim
Start) erledigt Speichern, Export und Schliessen direkt je Testmodul, ohne dass
`TEST_EXPORT_ALL` danach noch manuell aufgerufen werden muss.
| Feld | Typ | Bedeutung |
| --- | --- | --- |
| `name` | String | Basisname des Testmoduls (Pflicht) |