Was macht Tests optimieren?
Ziel: Echte OpenClaw-Test-/Laufzeitbeschleunigungen bei erhaltener Abdeckung. Keine Shards hinzufügen, Assertions überspringen, Tore schwächen oder Runner-Flags als Hauptlösung optimieren.
Runbook
- Lies
docs/help/testing.md,docs/ci.mdund die bereichsspezifischenAGENTS.md-Dateien für jeden Unterbaum, den du bearbeiten wirst. - Schaffe Belege vor Änderungen:
- Vollständiges Ranking:
pnpm test:perf:groups --full-suite --allow-failures --output .artifacts/test-perf/<name>.json - Gezielte Datei:
timeout 240 /usr/bin/time -l pnpm test <file> --maxWorkers=1 --reporter=verbose - Import-Verdacht: füge
OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1hinzu
- Vollständiges Ranking:
- Greife zuerst die Hotspots mit dem höchsten Ertrag an:
- Breite Barrels oder
importActual()in heißen Tests - Pro-Test
vi.resetModules()plus frische Importe - Teure Gateway-/Server-/Client-Setups, bei denen Zurücksetzen/Wiederverwendung gleiches Verhalten beweist
- Kerntests, die extension-eigenes Verhalten behaupten
- Doppelte Fixture-Konstruktion oder Vertrags-Assertions
- Breite Barrels oder
- Bevorzuge produktionsnahe Reparaturen:
- Enge Laufzeit-Nähte anstelle breiter Mocks
- Reine Hilfsfunktionen für statisches Parsing/Metadaten
- Injizierte Abhängigkeiten anstelle von Module-Reset
- Extension-eigene Tests für gebündeltes Plugin-/Provider-/Kanal-Verhalten
- Nach jeder Änderung führe die gleiche Benchmark und die beweisende Test-Spur erneut aus. Protokolliere Vorher/Nachher-Wall-Time, Vitest-Dauer und maximalen RSS, wenn verfügbar.
- Führe
pnpm check:changedaus; führe breitere Grenzen (pnpm check,pnpm test,pnpm build) aus, wenn die berührten Flächen sie erfordern. - Committe bereichsspezifische Änderungen mit
scripts/committer "<conventional message>" <paths...>. Pushe auf Anfrage. Wenn CI rot ist, inspiziere mitgh run list/view, behebe, pushe, wiederhole bis aktuelles CI grün ist oder ein Blocker als nicht verwandt nachgewiesen ist.
Ausgabe
Beende mit den gepushten Commits, Vorher/Nachher-Timings, durchgeführten Grenzen, aktuellem CI-Status und allen verbleibenden Endecken, die separate Optimierung benötigen.