From 37de0d44e6433054812cf33845f8c14e6ff19106 Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Sat, 29 Aug 2026 20:24:48 +0200 Subject: [PATCH] [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\ reference\; 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) --- tests/README.md | 69 +++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 36 deletions(-) diff --git a/tests/README.md b/tests/README.md index 376b887..cf8bcc7 100644 --- a/tests/README.md +++ b/tests/README.md @@ -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_ 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 | + _results.json (immer) | + _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_.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 + _results.json # JSON-Ergebnisse pro Testmodul (immer) + _tests.dxf/.dwg # Zeichnung pro Testmodul (gemaess save in alltests.json) export_all_results.json # nur nach manuellem TEST_EXPORT_ALL-Lauf _export.csv # EXPORTCSV je Quelldatei, nur nach TEST_EXPORT_ALL _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\ tests\reference\ ``` -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