CommunityCodierung & Entwicklunggithub.com

Tests optimieren

Optimiert langsame OpenClaw-Tests, Importe, falsch platzierten Coverage sowie CI-Wall-Time, ohne die Testabdeckung zu senken.

Was ist Tests optimieren?

Diese Fähigkeit hilft Entwicklern, die Testlaufzeiten in großen OpenClaw-Projekten zu beschleunigen, während die Codeabdeckung erhalten bleibt. Sie identifiziert Engpässe durch teure Importe, ineffiziente Mock-Nutzung (z.B. `importActual`), unnötige Modulrücksetzungen und teure Gateway-/Server-/Client-Setups. Die Vorgehensweise folgt einer evidenzbasierten Methode: Zuerst werden die heißesten Pfade mit Benchmark-Tools wie `pnpm test:perf:groups` und `OPENCLAW_VITEST_IMPORT_DURATIONS` gemessen. Anschließend werden produktionsnahe Optimierungen vorgenommen (z.B. enge Laufzeit-Nähte anstelle breiter Mocks, reine Hilfsfunktionen für statische Metadaten, Dependency-Injection statt Module-Reset). Nach jeder Änderung wird die gleiche Benchmark erneut ausgeführt, die Differenzen (Wall-Time, Vitest-Dauer, RSS) protokolliert und der Änderungssatz mit dem internen Commit-Tool committiert. Die Fähigkeit erfordert Leserechte für die Dokumentation (`docs/help/testing.md`, `docs/ci.md`, `AGENTS.md`) und setzt voraus, dass CI-Pipelines und Grenzen (`pnpm check:changed`, `pnpm check`, `pnpm build`) nach jeder Optimierung geprüft werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/optimizetests

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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

  1. Lies docs/help/testing.md, docs/ci.md und die bereichsspezifischen AGENTS.md-Dateien für jeden Unterbaum, den du bearbeiten wirst.
  2. 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=1 hinzu
  3. 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
  4. 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
  5. 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.
  6. Führe pnpm check:changed aus; führe breitere Grenzen (pnpm check, pnpm test, pnpm build) aus, wenn die berührten Flächen sie erfordern.
  7. Committe bereichsspezifische Änderungen mit scripts/committer "<conventional message>" <paths...>. Pushe auf Anfrage. Wenn CI rot ist, inspiziere mit gh 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.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Verwandte Skills