Files
kabellaengen/bin/run_test.sh
T
2026-01-28 21:24:40 +01:00

125 lines
3.7 KiB
Bash

#!/bin/bash
# ============================================================================
# run_test.sh - Führt Tests für eine einzelne DXF-Datei aus
#
# Usage:
# run_test.sh <filename> - Führt getexdraw Test aus
# run_test.sh <filename> --clean - Führt Test aus und räumt auf
# run_test.sh <filename> --ioconverter - Führt ioconverter Test aus
# run_test.sh <filename> --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") <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 " $(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