optimizetests について
Optimize Tests は、カバレッジを保ちながら OpenClaw のテストと実行を高速化するスキルです。性能データから遅いテストを特定し、変更を検証して、所要時間と CI の状態を報告します。
主な機能
- 01テスト性能のボトルネックを順位付け
- 02時間とメモリ使用量を測定
- 03重いインポートやセットアップを特定
- 04ベンチマークと検証テストを再実行
- 05プロジェクトのゲートと CI を確認
活用シーン
- 01OpenClaw の遅いテストを特定
- 02テスト高速化の変更を検証
- 03ベンチマークと CI の結果を追跡
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ openclaw/ openclaw --skill optimizetestsインストール後、Claude Code で/optimizetestsを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
テストの最適化
目標:カバレッジを維持しながら、OpenClaw のテスト/ランタイムを実際に高速化します。シャードの追加、アサーションのスキップ、ゲートの緩和、主な解決策としてのランナーフラグの調整は行わないでください。
実行手順
docs/help/testing.md、docs/ci.md、および編集するサブツリーのAGENTS.mdを読みます。- 編集前に根拠を集めます。
- 全体のランキング:
pnpm test:perf:groups --full-suite --allow-failures --output .artifacts/test-perf/<name>.json - 対象ファイル:
timeout 240 /usr/bin/time -l pnpm test <file> --maxWorkers=1 --reporter=verbose - インポートが疑わしい場合:
OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1を追加します。
- 全体のランキング:
- 効果の大きいホットスポットから優先して対処します。
- 負荷の高いテストでの広範なバレルインポートや
importActual() - テストごとの
vi.resetModules()と新規インポート - リセット/再利用でも同じ動作を確認できる、高コストなゲートウェイ/サーバー/クライアントのセットアップ
- 拡張機能が所有する動作を検証しているコアテスト
- 重複したフィクスチャ構築やコントラクトアサーション
- 負荷の高いテストでの広範なバレルインポートや
- 本番環境でも適切な修正を優先します。
- 広範なモックではなく、範囲を絞ったランタイムの境界
- 静的な解析/メタデータ向けの純粋関数ヘルパー
- モジュールのリセットではなく、依存関係の注入
- バンドルされたプラグイン/プロバイダー/チャネルの動作を対象とする、拡張機能側のテスト
- 変更のたびに同じベンチマークと、変更を検証するテストレーンを再実行します。可能であれば、変更前後の実時間、Vitest の所要時間、最大 RSS を記録します。
pnpm check:changedを実行します。変更箇所に応じて、より広範なゲート(pnpm check、pnpm test、pnpm build)も実行します。- 対象範囲を絞って、
scripts/committer "<conventional message>" <paths...>で変更をコミットします。依頼があればプッシュします。CI が失敗した場合は、gh run list/viewで調査して修正し、現在の CI が成功するか、無関係なブロッカーであると確認できるまで、プッシュと確認を繰り返します。
出力
最後に、プッシュしたコミット、変更前後の所要時間、実行したゲート、現在の CI 状態、および個別の最適化が必要な残りのテストレーンを記載します。
コメント
Markdown 対応