mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 22:04:10 +00:00
1.6 KiB
1.6 KiB
Projektweites Dynamisches Testsystem
Ziel
Dieses System stellt sicher, dass die Testabdeckung mit dem gesamten Projekt mitwaechst. Bestehende Altlasten werden als Baseline dokumentiert, aber neue ungetestete Dateien werden sofort als Fehler erkannt.
Komponenten
- Guard-Script:
scripts/test-system/audit.mjs - Baseline:
tests/test-system-baseline.json - Statusreport:
docs/reports/test-system-status.md
Funktionsweise
- Das Script scannt alle
src/**/*.{ts,tsx}Dateien (mit Exclusions, z. B. Migrationen). - Es sucht Test-Evidenz in
tests/unit,tests/int,tests/e2e:
- direkte Modulimporte (z. B.
@/lib/...) - API-Endpoint-Nutzung fuer
route.tsDateien (z. B./api/news) - konservative Dateinamen-Heuristik
- Es vergleicht die aktuelle Liste ungetesteter Dateien mit der Baseline.
- Ergebnis:
- Pass: keine neuen Luecken
- Fail: neue ungetestete Dateien gefunden
Befehle
# Guard ausfuehren (CI-geeignet)
pnpm test:system
# Baseline absichtlich aktualisieren
pnpm test:system:update
Team-Regeln fuer laufende Weiterentwicklung
- Bei jeder neuen Datei unter
src/direkt passende Tests anlegen. - Wenn technisch begruendet keine Tests moeglich sind, Datei bewusst in der Baseline belassen.
- Baseline nur nach Review aktualisieren (kein automatisches "wegklicken" von Luecken).
- Report unter
docs/reports/test-system-status.mdbei Auffaelligkeiten pruefen.
CI-Integration
Der Guard laeuft im CI-Workflow ci.yml im Lint-Job als Schritt:
pnpm test:system
Damit greifen die Regeln sowohl auf Pull Requests als auch auf Pushes nach develop.