#!/bin/bash # ============================================================================ # run_test.sh - Führt Tests für eine einzelne DXF-Datei aus # # Usage: # run_test.sh - Führt getexdraw Test aus # run_test.sh --clean - Führt Test aus und räumt auf # run_test.sh --ioconverter - Führt ioconverter Test aus # run_test.sh --translation - Führt translation Test aus # # Der Dateiname kann mit oder ohne .dxf Erweiterung angegeben werden. # Die Datei wird standardmäßig im testdata Ordner gesucht. # ============================================================================ # Funktion für Usage-Ausgabe usage() { echo "" echo "Usage: $(basename "$0") [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 " $(basename "$0") easy" echo " $(basename "$0") easy.dxf" echo " $(basename "$0") easy --clean" echo " $(basename "$0") easy --ioconverter" echo " $(basename "$0") Erdungsbsp --translation" echo "" exit 1 } # Prüfe ob Parameter übergeben wurde if [ $# -eq 0 ]; then usage fi # Bestimme das Skript-Verzeichnis SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Umgebungsvariablen laden source "$SCRIPT_DIR/setenv.sh" # Lade lokale Umgebungseinstellungen falls vorhanden if [ -f "$SCRIPT_DIR/_setenv.sh" ]; then echo "Lade lokale Umgebungseinstellungen aus _setenv.sh..." source "$SCRIPT_DIR/_setenv.sh" fi # Dateinamen extrahieren (ohne Pfad und ohne .dxf Erweiterung) FILENAME=$(basename "$1" .dxf) # Prüfe ob Datei im testdata Ordner existiert if [ ! -f "$PROJECT_TEST/$FILENAME.dxf" ]; then echo "Fehler: Datei $FILENAME.dxf nicht gefunden in $PROJECT_TEST" usage fi # Sammle Parameter für run_tests.py TEST_PARAMS="--file $FILENAME" # Verarbeite zusätzliche Parameter shift while [ $# -gt 0 ]; do case "$1" in --clean) TEST_PARAMS="$TEST_PARAMS --clean" ;; --ioconverter) TEST_PARAMS="$TEST_PARAMS --ioconverter" ;; --translation) TEST_PARAMS="$TEST_PARAMS --translation" ;; *) # Unbekannte Parameter ignorieren ;; esac shift done echo "" echo "============================================================================" echo "Führe Test aus für: $FILENAME.dxf" echo "Test-Parameter: $TEST_PARAMS" echo "============================================================================" echo "" # Python-Umgebung aktivieren source "$SCRIPT_DIR/manage_interpreter.sh" activate if [ $? -ne 0 ]; then echo "ERROR: Failed to activate Python environment" exit 1 fi # Wechsle ins Projektverzeichnis und führe run_tests.py aus pushd "$PROJECT" > /dev/null "$VIRTUAL_ENV/bin/python" -m lib.run_tests $TEST_PARAMS TEST_RESULT=$? popd > /dev/null # Python-Umgebung deaktivieren source "$SCRIPT_DIR/manage_interpreter.sh" deactivate echo "" echo "============================================================================" if [ $TEST_RESULT -eq 0 ]; then echo "Test erfolgreich abgeschlossen für: $FILENAME.dxf" else echo "Test fehlgeschlagen für: $FILENAME.dxf" fi echo "============================================================================" echo "" exit $TEST_RESULT