Files

118 lines
3.3 KiB
Batchfile

@echo off
REM ============================================================================
REM run_test.bat - Führt Tests für eine einzelne DXF-Datei aus
REM
REM Usage:
REM run_test.bat <filename> - Führt getexdraw Test aus
REM run_test.bat <filename> --clean - Führt Test aus und räumt auf
REM run_test.bat <filename> --ioconverter - Führt ioconverter Test aus
REM run_test.bat <filename> --translation - Führt translation Test aus
REM
REM Der Dateiname kann mit oder ohne .dxf Erweiterung angegeben werden.
REM Die Datei wird standardmäßig im testdata Ordner gesucht.
REM ============================================================================
if [%1]==[] goto usage
REM Umgebungsvariablen laden
call "%~dp0setenv.bat"
if exist "%~dp0_setenv.bat" (
echo Lade lokale Umgebungseinstellungen aus _setenv.bat...
call "%~dp0_setenv.bat"
)
REM Dateinamen extrahieren (ohne Pfad und ohne .dxf Erweiterung)
set "FILENAME=%~n1"
REM Prüfe ob Datei im testdata Ordner existiert
if not exist "%PROJECT_TEST%\%FILENAME%.dxf" (
echo Fehler: Datei %FILENAME%.dxf nicht gefunden in %PROJECT_TEST%
echo.
goto usage
)
REM Sammle zusätzliche Parameter für run_tests.py
set "TEST_PARAMS=--file %FILENAME%"
REM Prüfe auf zusätzliche Flags
:parse_args
if "%2"=="" goto run_test
if /i "%2"=="--clean" (
set "TEST_PARAMS=%TEST_PARAMS% --clean"
shift
goto parse_args
)
if /i "%2"=="--ioconverter" (
set "TEST_PARAMS=%TEST_PARAMS% --ioconverter"
shift
goto parse_args
)
if /i "%2"=="--translation" (
set "TEST_PARAMS=%TEST_PARAMS% --translation"
shift
goto parse_args
)
REM Unbekannte Parameter ignorieren oder durchreichen
shift
goto parse_args
:run_test
echo.
echo ============================================================================
echo Führe Test aus für: %FILENAME%.dxf
echo Test-Parameter: %TEST_PARAMS%
echo ============================================================================
echo.
REM Python-Umgebung aktivieren
CALL "%PROJECT_BIN%\manage_interpreter.bat" activate
if errorlevel 1 (
echo ERROR: Failed to activate Python environment
exit /b 1
)
REM Wechsle ins Projektverzeichnis und führe run_tests.py aus
pushd "%PROJECT%"
"%VIRTUAL_ENV%\Scripts\python.exe" -m lib.run_tests %TEST_PARAMS%
set TEST_RESULT=%ERRORLEVEL%
popd
REM Python-Umgebung deaktivieren
CALL "%PROJECT_BIN%\manage_interpreter.bat" deactivate
echo.
echo ============================================================================
if %TEST_RESULT% EQU 0 (
echo Test erfolgreich abgeschlossen für: %FILENAME%.dxf
) else (
echo Test fehlgeschlagen für: %FILENAME%.dxf
)
echo ============================================================================
echo.
exit /B %TEST_RESULT%
:usage
echo.
echo Usage: %~nx0 ^<filename^> [OPTIONS]
echo.
echo Argumente:
echo filename Name der DXF-Datei (mit oder ohne .dxf Erweiterung)
echo Die Datei wird im testdata Ordner gesucht.
echo.
echo Optionen:
echo --clean Räumt das work-Verzeichnis nach dem Test auf
echo --ioconverter Führt ioconverter Test aus (statt getexdraw)
echo --translation Führt translation Test aus (statt getexdraw)
echo.
echo Beispiele:
echo %~nx0 easy
echo %~nx0 easy.dxf
echo %~nx0 easy --clean
echo %~nx0 easy --ioconverter
echo %~nx0 Erdungsbsp --translation
echo.
exit /B 1