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:
+29
-9
@@ -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) |
|
||||
|
||||
Reference in New Issue
Block a user