From 8ab83670a7493e375380cf1330a6365b2f4823b2 Mon Sep 17 00:00:00 2001 From: Handy-Insel Date: Mon, 2 Nov 2026 13:52:24 +0100 Subject: [PATCH] =?UTF-8?q?Build:=20harte=20Zeitgrenzen=20f=C3=BCr=20Tests?= =?UTF-8?q?=20(90=20s=20je=20Test,=2015=20min=20gesamt,=20Job=2030=20min),?= =?UTF-8?q?=20Tests=20ausf=C3=BChrlich=20protokollieren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ein Test hing auf dem Runner fast eine Stunde in einem Systemaufruf, wo der Tk-Watchdog der GUI-Tests nicht greift. pytest-timeout bricht ab und gibt den Aufrufstapel aus. Co-Authored-By: Claude Opus 5.5 --- .gitea/workflows/windows-build.yml | 1 + build/build_windows.sh | 3 ++- pytest.ini | 5 +++++ requirements-dev.txt | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/windows-build.yml b/.gitea/workflows/windows-build.yml index 10f7e70..7918414 100644 --- a/.gitea/workflows/windows-build.yml +++ b/.gitea/workflows/windows-build.yml @@ -14,6 +14,7 @@ jobs: windows-exe: # Label ggf. an euren Runner anpassen (Runner braucht Docker; Wine steckt im Container-Image). runs-on: ubuntu-latest + timeout-minutes: 30 # normal ca. 5 Minuten – ein Hänger darf den Runner nicht stundenlang belegen container: image: tobix/pywine:3.12 env: diff --git a/build/build_windows.sh b/build/build_windows.sh index d5dc3df..1847267 100755 --- a/build/build_windows.sh +++ b/build/build_windows.sh @@ -26,7 +26,8 @@ $PY -m pip install --disable-pip-version-check -q -r requirements-dev.txt echo "== Tests inkl. Oberfläche (Windows-Python unter Wine) ==" # PROVTOOL_GUI_TESTS=1: fehlt der Bildschirm, ist das ein Fehler (nicht „übersprungen“) -PROVTOOL_GUI_TESTS=1 $PY -m pytest -q -p no:cacheprovider +# -v: im Log ist live sichtbar, welcher Test läuft; timeout: Obergrenze für alle Tests zusammen +PROVTOOL_GUI_TESTS=1 timeout 900 $PY -m pytest -v -p no:cacheprovider echo "== Version ==" VERSION=$($PY build/version_info.py | tr -d '\r') diff --git a/pytest.ini b/pytest.ini index c7b23ec..1e7a52b 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,8 @@ [pytest] pythonpath = . testpaths = tests +# Kein Test darf den Build blockieren: nach 90 s wird abgebrochen und der Aufrufstapel aller +# Threads ausgegeben (zeigt, wo es hängt – auch in Windows-Systemaufrufen, wo der Tk-Watchdog +# der GUI-Tests nicht greift). +timeout = 90 +timeout_method = thread diff --git a/requirements-dev.txt b/requirements-dev.txt index 5e6d04b..196397f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,3 +1,4 @@ -r requirements.txt pytest==8.3.3 pyinstaller==6.11.1 +pytest-timeout==2.3.1