diff --git a/bin/run_tests.bat b/bin/run_tests.bat new file mode 100644 index 0000000..5d7c522 --- /dev/null +++ b/bin/run_tests.bat @@ -0,0 +1,133 @@ +@echo off +REM ================================================================ +REM run_tests.bat - Testausfuehrung fuer SSG_LIB +REM +REM Schalter: +REM --create Erzeugt Basis-DXF-Dateien (Testgrundlage) +REM --check Fuehrt pytest-Validierung aus +REM (ohne) Zeigt Hilfe an +REM +REM Beispiele: +REM bin\run_tests.bat --create +REM bin\run_tests.bat --create kreisel +REM bin\run_tests.bat --check +REM bin\run_tests.bat --check test_kreisel.py +REM bin\run_tests.bat --create --check +REM ================================================================ + +REM Umgebung setzen +call "%~dp0setenv.bat" + +set DO_CREATE=0 +set DO_CHECK=0 +set CREATE_ARG= +set CHECK_ARG= + +REM Argumente parsen +:parse_args +if "%~1"=="" goto :after_args +if "%~1"=="--create" ( + set DO_CREATE=1 + if not "%~2"=="" if not "%~2"=="--check" ( + set "CREATE_ARG=%~2" + shift + ) + shift + goto :parse_args +) +if "%~1"=="--check" ( + set DO_CHECK=1 + if not "%~2"=="" if not "%~2"=="--create" ( + set "CHECK_ARG=%~2" + shift + ) + shift + goto :parse_args +) +echo Unbekannter Schalter: %~1 +goto :show_help + +:after_args +if %DO_CREATE%==0 if %DO_CHECK%==0 goto :show_help + +REM ================================================================ +REM --create: Basis-DXF erzeugen +REM ================================================================ +if %DO_CREATE%==1 ( + echo. + echo ================================================================ + echo TESTBASE ERZEUGEN + echo ================================================================ + if not "%CREATE_ARG%"=="" ( + echo Modul: %CREATE_ARG% + python "%DXFM_TESTS%\create_testbase.py" %CREATE_ARG% + ) else ( + echo Alle Module + python "%DXFM_TESTS%\create_testbase.py" + ) + if errorlevel 1 ( + echo. + echo FEHLER: create_testbase.py fehlgeschlagen! + exit /b 1 + ) + echo. + echo Basis-DXF erfolgreich erstellt. + echo Naechster Schritt: BricsCAD oeffnen und TESTRUN ausfuehren. +) + +REM ================================================================ +REM --check: pytest-Validierung +REM ================================================================ +if %DO_CHECK%==1 ( + echo. + echo ================================================================ + echo PYTEST VALIDIERUNG + echo ================================================================ + + REM Pruefen ob output-Verzeichnis Ergebnisse enthaelt + if not exist "%DXFM_TESTOUT%\*.json" ( + echo. + echo WARNUNG: Keine Ergebnisse in %DXFM_TESTOUT% + echo Zuerst TESTRUN in BricsCAD ausfuehren! + echo. + ) + + if not "%CHECK_ARG%"=="" ( + echo Teste: %CHECK_ARG% + pytest "%DXFM_TESTS%\%CHECK_ARG%" -v + ) else ( + echo Teste: alle Module + pytest "%DXFM_TESTS%" -v + ) + if errorlevel 1 ( + echo. + echo ================================================================ + echo ERGEBNIS: TESTS FEHLGESCHLAGEN + echo ================================================================ + exit /b 1 + ) + echo. + echo ================================================================ + echo ERGEBNIS: ALLE TESTS BESTANDEN + echo ================================================================ +) + +exit /b 0 + +:show_help +echo. +echo Aufruf: bin\run_tests.bat [--create [modul]] [--check [testdatei]] +echo. +echo Schalter: +echo --create Erzeugt Basis-DXF-Dateien fuer alle Module +echo --create kreisel Erzeugt nur Kreisel-Basis-DXF +echo --check Fuehrt pytest-Validierung fuer alle Module aus +echo --check test_kreisel.py Validiert nur Kreisel-Tests +echo --create --check Beides nacheinander +echo. +echo Workflow: +echo 1. bin\run_tests.bat --create +echo 2. In BricsCAD: TESTRUN "kreisel" +echo 3. bin\run_tests.bat --check +echo. +exit /b 1