Files
dxfmakros/bin/run_tests.bat
T
2026-05-28 17:37:04 +02:00

134 lines
3.8 KiB
Batchfile

@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