[DOC] tests/README.md aktualisiert (veraltete Schalter + Struktur)

- --runall gibt es nicht mehr -> --check (pytest-Validierung); an allen Stellen
  ersetzt (Ablauf-Diagramm, Workflow-Schritt 2, Einzelmodul-Beispiel)
- --set-as-reference existiert nicht -> Referenz aktualisieren per manuellem
  copy output\<datei> reference\<datei>; zusaetzlich --diff_references (meld)
  dokumentiert
- run_tests.bat hat real nur: --lisp, --check, --diff_references
- Ablauf-Diagramm + Verzeichnisstruktur auf das aktuelle Modell verallgemeinert
  (9 Module aus alltests.json statt fester 4er-Liste; reference/ enthaelt
  *_results.json + *_tests_export/sivas.csv + export_raw.json, keine .dxf)
- omniflo_strecke_tests.json-Beschreibung korrigiert (7 Elemente: 4 Geraden +
  2 Boegen + 1 Weiche, statt des alten 12-Element-Halbkreis-Modells)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-29 20:24:48 +02:00
parent 775e27182c
commit 37de0d44e6
+33 -36
View File
@@ -14,29 +14,20 @@ tests/alltests.json
BricsCAD Kommandozeile BricsCAD Kommandozeile
| | | |
| SSG_RUN_ALL_TESTS | | SSG_RUN_ALL_TESTS |
| (TEST_KREISEL, | | (fuehrt je Eintrag aus |
| TEST_FOERDERER, | | alltests.json den passenden |
| TEST_OMNIFLO, | | TEST_<NAME> aus) |
| TEST_GEFAELLESTRECKE) |
| | | | | |
v v | v v |
tests/output/ | tests/output/ |
kreisel_results.json (immer) | <name>_results.json (immer) |
kreisel_tests.dxf (save: dxf) | <name>_tests.dxf/.dwg (gemaess save)|
foerderer_results.json (immer) |
foerderer_tests.dwg (save: dwg) |
omniflo_results.json (immer) |
omniflo_tests.dxf (save: dxf) |
gefaellestrecke_results.json |
gefaellestrecke_tests.dwg |
| |
bin\run_tests.bat --runall bin\run_tests.bat --check
| |
pytest -v pytest -v
| |
test_kreisel.py test_<name>.py je Modul
test_omniflo.py
test_foerderer.py
``` ```
## LISP-Unit-Tests fuer reine Standardfunktionen (`--lisp`) ## LISP-Unit-Tests fuer reine Standardfunktionen (`--lisp`)
@@ -145,9 +136,10 @@ etc.) ist davon unberuehrt (GUI standardmaessig an).
2. **Optische Kontrolle** in BricsCAD — pruefen ob die erzeugten Bloecke korrekt aussehen (Positionen, Drehungen, Beschriftungen). Jede Testzeichnung bleibt als eigener Tab offen (auf den Inhalt gezoomt) und kann direkt visuell inspiziert werden. 2. **Optische Kontrolle** in BricsCAD — pruefen ob die erzeugten Bloecke korrekt aussehen (Positionen, Drehungen, Beschriftungen). Jede Testzeichnung bleibt als eigener Tab offen (auf den Inhalt gezoomt) und kann direkt visuell inspiziert werden.
3. **Kommandozeile**: Ergebnisse validieren oder als neue Referenz speichern: 3. **Kommandozeile**: Ergebnisse validieren:
- `bin\run_tests.bat --runall` — pytest prueft die Ergebnisse aus `output/` gegen Testdefinitionen und Referenzdaten - `bin\run_tests.bat --check` — pytest prueft die Ergebnisse aus `output/` gegen Testdefinitionen und Referenzdaten (optional: einzelnes Modul, z.B. `--check test_kreisel.py`)
- `bin\run_tests.bat --set-as-reference`nach erfolgreicher Pruefung die aktuellen Ergebnisse als neue Referenz uebernehmen (kopiert `output/` nach `reference/`) - `bin\run_tests.bat --diff_references`vergleicht die CSVs in `output/` gegen `reference/` und oeffnet bei Unterschieden das Diff-Tool (meld); optional eine einzelne Datei, z.B. `--diff_references kreisel_tests_export.csv`
- Referenz aktualisieren (nach geprueftem Lauf): die betreffende(n) Datei(en) aus `output/` manuell nach `reference/` kopieren (es gibt keinen eigenen Schalter dafuer)
## Verzeichnisstruktur ## Verzeichnisstruktur
@@ -165,25 +157,24 @@ tests/
test_omniflo_strecke.lsp # LISP-Testrunner: C:TEST_OMNIFLO_STRECKE (Streckenzug) test_omniflo_strecke.lsp # LISP-Testrunner: C:TEST_OMNIFLO_STRECKE (Streckenzug)
test_omniflo_strecke.py # pytest-Validierung des Omniflo-Streckenzugs test_omniflo_strecke.py # pytest-Validierung des Omniflo-Streckenzugs
test_export_all.lsp # LISP-Testrunner: C:TEST_EXPORT_ALL (manuell, nicht in alltests.json) test_export_all.lsp # LISP-Testrunner: C:TEST_EXPORT_ALL (manuell, nicht in alltests.json)
test_foerderer.py # pytest-Validierung Foerderer (Status/Mathematik/CSV/Sivas)
test_gefaellestrecke.py # pytest-Validierung Gefaellestrecke
test_mubea.py # pytest-Validierung Mubea-Gesamtmodell
test_hundm05.py # pytest-Validierung HundM05-Abschnitt
test_unit.lsp / .scr # LISP-Unit-Tests: C:TEST_UNIT (ueber --lisp)
testdata/ testdata/
kreisel_tests.json # Testfall-Definitionen fuer Kreisel kreisel_tests.json # Testfall-Definitionen fuer Kreisel
omniflo_tests.json # Testfall-Definitionen fuer Omniflo omniflo_tests.json # Testfall-Definitionen fuer Omniflo
omniflo_strecke_tests.json # Streckenzug: 4 Geraden -> 180-Grad-Kurve -> 4 Geraden omniflo_strecke_tests.json # Streckenzug: 4 Geraden + 2 Boegen + 1 Weiche (7 Elemente)
foerderer_tests.json / mubea.json / hundm05.json / ...
output/ # Ergebnisse aus BricsCAD (nicht in Git) output/ # Ergebnisse aus BricsCAD (nicht in Git)
kreisel_results.json # JSON-Ergebnisse pro Testmodul <name>_results.json # JSON-Ergebnisse pro Testmodul (immer)
kreisel_tests.dxf # DXF-Zeichnung pro Testmodul <name>_tests.dxf/.dwg # Zeichnung pro Testmodul (gemaess save in alltests.json)
foerderer_results.json
foerderer_tests.dwg
omniflo_results.json
omniflo_tests.dxf
gefaellestrecke_results.json
gefaellestrecke_tests.dwg
export_all_results.json # nur nach manuellem TEST_EXPORT_ALL-Lauf export_all_results.json # nur nach manuellem TEST_EXPORT_ALL-Lauf
<basis>_export.csv # EXPORTCSV je Quelldatei, nur nach TEST_EXPORT_ALL <basis>_export.csv # EXPORTCSV je Quelldatei, nur nach TEST_EXPORT_ALL
<basis>_sivas.csv # EXPORTSIVAS je Quelldatei, nur nach TEST_EXPORT_ALL <basis>_sivas.csv # EXPORTSIVAS je Quelldatei, nur nach TEST_EXPORT_ALL
reference/ # Abgenommene Referenzdaten (in Git) reference/ # Abgenommene Referenzdaten (in Git): *_results.json,
kreisel_ref.dxf ... # *_tests_export.csv / *_tests_sivas.csv, export_raw.json
...
``` ```
## Workflow ## Workflow
@@ -235,13 +226,13 @@ TEST_KREISEL
### 2. Python-Validierung ausfuehren ### 2. Python-Validierung ausfuehren
```cmd ```cmd
bin\run_tests.bat --runall bin\run_tests.bat --check
``` ```
Oder fuer ein einzelnes Testmodul: Oder fuer ein einzelnes Testmodul:
```cmd ```cmd
bin\run_tests.bat --runall test_kreisel.py bin\run_tests.bat --check test_kreisel.py
``` ```
Die Python-Tests pruefen: Die Python-Tests pruefen:
@@ -254,13 +245,19 @@ Tests, deren Eingabedaten fehlen (z.B. kein BricsCAD-Lauf), werden automatisch u
### 3. Referenz erstellen/aktualisieren ### 3. Referenz erstellen/aktualisieren
Nach einem erfolgreichen Testlauf die Ergebnisse als Referenz speichern: Nach einem erfolgreichen, geprueften Testlauf die betreffende(n) Ergebnisdatei(en)
manuell aus `output/` nach `reference/` kopieren (nur bei bestandenen Tests). Es gibt
keinen eigenen Batch-Schalter dafuer.
```cmd ```cmd
bin\run_tests.bat --set-as-reference copy tests\output\<datei> tests\reference\<datei>
``` ```
Kopiert alle Dateien aus `output/` nach `reference/`. Nur bei bestandenen Tests verwenden. Zum Vergleich der aktuellen CSVs gegen die Referenz (mit Diff-Tool meld):
```cmd
bin\run_tests.bat --diff_references
```
## Neuen Test erstellen ## Neuen Test erstellen