[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
| |
| SSG_RUN_ALL_TESTS |
| (TEST_KREISEL, |
| TEST_FOERDERER, |
| TEST_OMNIFLO, |
| TEST_GEFAELLESTRECKE) |
| (fuehrt je Eintrag aus |
| alltests.json den passenden |
| TEST_<NAME> aus) |
| | |
v v |
tests/output/ |
kreisel_results.json (immer) |
kreisel_tests.dxf (save: dxf) |
foerderer_results.json (immer) |
foerderer_tests.dwg (save: dwg) |
omniflo_results.json (immer) |
omniflo_tests.dxf (save: dxf) |
gefaellestrecke_results.json |
gefaellestrecke_tests.dwg |
<name>_results.json (immer) |
<name>_tests.dxf/.dwg (gemaess save)|
|
bin\run_tests.bat --runall
bin\run_tests.bat --check
|
pytest -v
|
test_kreisel.py
test_omniflo.py
test_foerderer.py
test_<name>.py je Modul
```
## 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.
3. **Kommandozeile**: Ergebnisse validieren oder als neue Referenz speichern:
- `bin\run_tests.bat --runall` — pytest prueft die Ergebnisse aus `output/` gegen Testdefinitionen und Referenzdaten
- `bin\run_tests.bat --set-as-reference`nach erfolgreicher Pruefung die aktuellen Ergebnisse als neue Referenz uebernehmen (kopiert `output/` nach `reference/`)
3. **Kommandozeile**: Ergebnisse validieren:
- `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 --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
@@ -165,25 +157,24 @@ tests/
test_omniflo_strecke.lsp # LISP-Testrunner: C:TEST_OMNIFLO_STRECKE (Streckenzug)
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_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/
kreisel_tests.json # Testfall-Definitionen fuer Kreisel
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)
kreisel_results.json # JSON-Ergebnisse pro Testmodul
kreisel_tests.dxf # DXF-Zeichnung pro Testmodul
foerderer_results.json
foerderer_tests.dwg
omniflo_results.json
omniflo_tests.dxf
gefaellestrecke_results.json
gefaellestrecke_tests.dwg
<name>_results.json # JSON-Ergebnisse pro Testmodul (immer)
<name>_tests.dxf/.dwg # Zeichnung pro Testmodul (gemaess save in alltests.json)
export_all_results.json # nur nach manuellem TEST_EXPORT_ALL-Lauf
<basis>_export.csv # EXPORTCSV je Quelldatei, nur nach TEST_EXPORT_ALL
<basis>_sivas.csv # EXPORTSIVAS je Quelldatei, nur nach TEST_EXPORT_ALL
reference/ # Abgenommene Referenzdaten (in Git)
kreisel_ref.dxf
...
reference/ # Abgenommene Referenzdaten (in Git): *_results.json,
... # *_tests_export.csv / *_tests_sivas.csv, export_raw.json
```
## Workflow
@@ -235,13 +226,13 @@ TEST_KREISEL
### 2. Python-Validierung ausfuehren
```cmd
bin\run_tests.bat --runall
bin\run_tests.bat --check
```
Oder fuer ein einzelnes Testmodul:
```cmd
bin\run_tests.bat --runall test_kreisel.py
bin\run_tests.bat --check test_kreisel.py
```
Die Python-Tests pruefen:
@@ -254,13 +245,19 @@ Tests, deren Eingabedaten fehlen (z.B. kein BricsCAD-Lauf), werden automatisch u
### 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
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