メインコンテンツへスキップ

テスト

  • 完全なテストキット(スイート、ライブ、Docker): Testing
  • pnpm test:force: 既定の制御ポートを保持している残存ゲートウェイ プロセスをすべて終了し、分離されたゲートウェイ ポートで完全な Vitest スイートを実行します。これにより、実行中のインスタンスとサーバー テストが衝突しません。以前のゲートウェイ 実行でポート 18789 が占有されたままの場合に使用します。 以前のゲートウェイが稼働していた18789ポートが占有されている場合に使用します。 以前のゲートウェイが稼働していた18789ポートが占有されている場合に使用します。
  • pnpm test:coverage: V8 カバレッジ(vitest.unit.config.ts 経由)でユニットテストスイートを実行します。 グローバルしきい値は70%行/ブランチ/関数/ステートメントです。 カバレッジは、ユニットテスト可能なロジックに焦点を合わせるために、統合重量のエントリポイント (CLI 配線、ゲートウェイ/テレグラムブリッジ、ウェブチャット静的サーバー) を除外します。
  • Node 24+ での pnpm test: OpenClaw は Vitest の vmForks を自動的に無効化し、ERR_VM_MODULE_LINK_FAILUREmodule is already linked を回避するために forks を使用します。 OPENCLAW_TEST_VM_FORKS=0|1 で動作を強制できます。
  • pnpm test:e2e: ゲートウェイのエンドツーエンド スモークテスト(複数インスタンスの WS/HTTP/ノード ペアリング)を実行します。 既定では vitest.e2e.config.tsvmForks + 適応型ワーカーが使用されます。OPENCLAW_E2E_WORKERS=<n> で調整し、詳細ログを有効にするには OPENCLAW_E2E_VERBOSE=1 を設定してください。
  • pnpm test:live: プロバイダーのライブテスト(minimax/zai)を実行します。API キーと、スキップ解除のために LIVE=1(またはプロバイダー固有の *_LIVE_TEST=1)が必要です。 スキップを解除するにはAPIキーとLIVE=1(またはプロバイダ固有の*_LIVE_TEST=1)が必要です。 スキップを解除するにはAPIキーとLIVE=1(またはプロバイダ固有の*_LIVE_TEST=1)が必要です。

モデル レイテンシ ベンチ(ローカル キー)

スクリプト: scripts/bench-model.ts 使用方法:
  • source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10
  • 任意の環境変数: MINIMAX_API_KEY, MINIMAX_BASE_URL, MINIMAX_MODEL, ANTHROPIC_API_KEY
  • 既定のプロンプト: 「単語を 1 つだけで返信してください: ok。句読点や余分なテキストは不要です。」 句読点や追加テキストはありません。」 句読点や追加テキストはありません。」
最終実行(2025-12-31、20 回):
  • minimax 中央値 1279ms(最小 1114、最大 2431)
  • opus 中央値 2454ms(最小 1224、最大 3170)

オンボーディング E2E(Docker)

Docker は任意です。これは、コンテナ化されたオンボーディング スモークテストにのみ必要です。 クリーンな Linux コンテナでの完全なコールドスタート フロー:
scripts/e2e/onboard-docker.sh
このスクリプトは疑似 tty を介して対話型ウィザードを駆動し、設定/ワークスペース/セッション ファイルを検証した後、ゲートウェイを起動して openclaw health を実行します。

QR インポート スモーク(Docker)

Docker 内の Node 22+ で qrcode-terminal が読み込まれることを確認します:
pnpm test:docker:qr