run-tests
Kova コマンドの統合テストを自動実行する Skill です。AI エージェントが「テストして」「broadcast テスト」「policy テスト」「全部テスト」といった指示を受けたとき、このSkillが起動し、コマンド実行・結果検証・レポート生成までを自動で行います。
このページは
packages/skills/skills/run-tests/の実装に基づきます。
トリガー条件
以下のような自然言語の指示でこの Skill が呼び出されます。
- “テストして”
- “send broadcast を試して”
- “ポリシーテスト”
- “全部テストして”
テスト ID 一覧
ユーザーの発言から実行するテストを推論します。
| ユーザーの意図 | テスト ID | 内容 |
|---|---|---|
| ”send broadcast”, “ETH 送金テスト” | send-eth | ETH 送金の dry-run + broadcast |
| ”USDC 送金テスト”, “ERC-20 テスト” | send-usdc | USDC 送金の dry-run + broadcast |
| ”policy テスト”, “ポリシー”, “POLICY_DENIED” | policy | ポリシー違反の検出確認 |
| ”ティアテスト”, “ガードテスト” | guard | owner-only 操作の構造的 block 確認(非 TTY 経路で INTERACTIVE_INPUT_REQUIRED) |
| “全部テスト”, “all”, “すべて” | all | 上記をすべて順番に実行 |
不明な場合はユーザーに確認します。
前提
| 項目 | 値 |
|---|---|
| テスト用ウォレット | kova init で作成済みのウォレット(自動解決) |
| 送金先アドレス | 0x0000000000000000000000000000000000000001 |
| テストネット | base-sepolia |
| USDC コントラクト | 0x036CbD53842c5426634e7929541eC2318f3dCF7e |
Phase 0: 環境チェック(全テスト共通)
すべてのテスト実行前に、必ず Phase 0 を実施します。
Step 0-1: CLI 動作確認
kova --versionバージョン文字列が出力されること。失敗したら以後のテストを中断します。
Step 0-2: ウォレット確認
kova wallet infoウォレットが存在することを確認します。未設定の場合は kova init でセットアップします。
Step 0-3: ウォレットアドレス取得
kova wallet infoeip155:84532 のアドレスを記録(残高不足時の faucet 案内に利用)。
各テストの内容
send-eth
kova balanceで ETH 残高(base-sepolia 行)を取得- dry-run:
kova send --name my-wallet --to 0x0000000000000000000000000000000000000001 --amount 0.001 --chain base-sepolia - broadcast: 同コマンドに
--broadcastを付与 - 送金後の残高が減っていることを確認
send-usdc
- ETH 残高(ガス用)と USDC 残高(送金用)を確認
- dry-run:
kova send --name my-wallet --to 0x... --amount 1 --token USDC --chain base-sepolia - broadcast: 同コマンドに
--broadcastを付与 - 送金後の USDC 残高が減っていることを確認
policy
kova wallet infoでウォレットの存在確認(未設定ならkova init案内を出して SKIP)- 許可チェーン(
base-sepolia)での dry-run が成功する - 禁止チェーン(
ethereum)での送金がPOLICY_DENIEDで拒否される
guard
非 TTY 経路で kova wallet export < /dev/null が INTERACTIVE_INPUT_REQUIRED で構造的にブロックされることを確認します(owner-only 操作のため)。
SKIP フォールバック(残高不足時)
残高不足はテスト失敗ではなく SKIP として扱います。
| 不足条件 | 挙動 |
|---|---|
ETH < 0.002(send-eth) | SKIP 記録 + Base Sepolia faucet URL を案内 |
ETH = 0(send-usdc のガス用) | SKIP 記録 + faucet URL を案内 |
USDC < 1.1(send-usdc) | SKIP 記録 + USDC コントラクトアドレスを案内 |
ウォレット未設定(policy) | SKIP 記録 + kova init 案内 |
出力例(レポート)
## kova テスト結果 — 2026-05-04 14:30
- ウォレット: (自動解決)
- CLI: 0.1.0
- テストネット: Base Sepolia
| テスト | 結果 | 詳細 |
|---|---|---|
| send-eth | PASS | txHash: 0xabc... |
| send-usdc | PASS | txHash: 0xdef... |
| policy | PASS | POLICY_DENIED 確認済み |
| guard | PASS | INTERACTIVE_INPUT_REQUIRED 確認済み |
### 手動確認が必要な項目
- [ ] send-eth: https://sepolia.basescan.org/tx/0xabc... でトランザクションを確認
- [ ] send-usdc: https://sepolia.basescan.org/tx/0xdef... でトランザクションを確認
### クリーンアップ
(テスト専用ウォレットは存在しないため、クリーンアップ不要)エラーハンドリング
CLI が見つからない
kova: command not foundpnpm install 後に pnpm --filter @komlock_lab/kova build を実行するか、packages/cli/QUICKSTART.md の手順でセットアップしてください。
ウォレット未設定エラー
kova wallet info が WALLET_NOT_FOUND を返す場合は、kova init でウォレットをセットアップしてから再実行してください。
| エラーコード | 対処 |
|---|---|
WALLET_NOT_FOUND | kova init を実行してウォレットをセットアップする |
INTERACTIVE_INPUT_REQUIRED | TTY 環境で実行する(owner-only 操作は非 TTY で構造的に block される) |
関連項目
- Skills 概要 — 全 Skill の一覧とセキュリティ仕様
- send-tokens —
send-eth/send-usdcテストで利用 - Core Concepts: セキュリティ — policy / owner-only 操作の仕組み
Last updated on