[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:
+33
-36
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user