Lisp-Unit-Tests fuer reine Standardfunktionen + run_tests.bat --lisp
- tests/test_unit.lsp: Mini-Test-Framework (tu-eq/tu-eqf/tu-true/tu-nil) und Testfaelle fuer reine Funktionen aus ssg_core, ssg_lang, ssg_id, vf_core, export, Gefaellestrecke, OmniModulInsert, KreiselInsert. Befehl TEST_UNIT schreibt tests/output/unit_results.txt. - tests/test_unit.scr: Headless-Startskript (laedt SSG_LIB, ruft TEST_UNIT, beendet BricsCAD), pfadunabhaengig ueber DXFMAKRO. - bin/run_tests.bat: Schalter --lisp startet BricsCAD headless, wertet den Report aus (RESULT: OK/FAIL) und setzt den Exit-Code. - tests/README.md: Abschnitt zu den LISP-Unit-Tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,43 @@ tests/output/ |
|
||||
test_foerderer.py
|
||||
```
|
||||
|
||||
## LISP-Unit-Tests fuer reine Standardfunktionen (`--lisp`)
|
||||
|
||||
Neben den zeichnungsbasierten Integrationstests gibt es **Unit-Tests fuer einfache
|
||||
LISP-Standardfunktionen** — reine Funktionen ohne Zeichnungsdatenbank, Auswahlsaetze,
|
||||
Dialoge oder Blockdateien (String-/Zahl-/Vektor-/Alist-Helfer). Sie funktionieren
|
||||
analog zu den Python-Unittests: jeder Testfall vergleicht einen Funktionsaufruf gegen
|
||||
ein erwartetes Ergebnis.
|
||||
|
||||
- **Testrunner**: `tests/test_unit.lsp` — Befehl `TEST_UNIT`, Mini-Framework mit
|
||||
`tu-eq` (exakt), `tu-eqf` (Fliesskomma-Toleranz), `tu-true`, `tu-nil`.
|
||||
- **Startskript**: `tests/test_unit.scr` — laedt SSG_LIB + die Tests, ruft `TEST_UNIT`
|
||||
auf und beendet BricsCAD (pfadunabhaengig ueber `DXFMAKRO`).
|
||||
- **Ergebnis**: Konsole (PASS/FAIL je Test) und `tests/output/unit_results.txt`
|
||||
(letzte Zeile `RESULT: OK` / `RESULT: FAIL`).
|
||||
|
||||
Ausfuehrung ueber die Kommandozeile (startet BricsCAD headless):
|
||||
|
||||
```cmd
|
||||
bin\run_tests.bat --lisp
|
||||
```
|
||||
|
||||
`run_tests.bat --lisp` loescht das alte Ergebnis, startet BricsCAD mit `test_unit.scr`,
|
||||
gibt danach `unit_results.txt` aus und liefert Exit-Code 1, wenn ein Test fehlschlaegt
|
||||
oder kein Report erzeugt wurde.
|
||||
|
||||
Direkt in BricsCAD (SSG_LIB geladen):
|
||||
|
||||
```lisp
|
||||
(load (strcat (getenv "DXFMAKRO") "/tests/test_unit.lsp"))
|
||||
TEST_UNIT
|
||||
```
|
||||
|
||||
Getestete Module: `ssg_core`, `ssg_lang`, `ssg_id`, `vf_core`, `export`,
|
||||
`Gefaellestrecke`, `OmniModulInsert`, `KreiselInsert`.
|
||||
|
||||
## Zeichnungsbasierte Integrationstests
|
||||
|
||||
**Jedes Testmodul laeuft in einer eigenen, neuen Zeichnung** (statt die aktuelle zu
|
||||
leeren/wiederzuverwenden). `SSG_RUN_ALL_TESTS` fragt beim Start interaktiv nach
|
||||
dem gewuenschten Modus:
|
||||
|
||||
Reference in New Issue
Block a user