mcpField
C
cli-backend-testing

cli-backend-testing

github.com/lobehubテスト・品質83.6k63 回インストール今日更新
リポジトリ

cli-backend-testing について

LobeHub CLIをローカル開発サーバーに接続してテストする手順書です。認証情報の分離、デバイスコード認証、バックエンドの再起動要件、テスト例を扱います。

主な機能

  1. 01ローカルサーバーとCLIの設定
  2. 02開発用認証情報の分離
  3. 03Device Code Flowによる認証
  4. 04バックエンド再起動の指針
  5. 05タスク・エージェント・文書・プロバイダーのテスト例

活用シーン

  1. 01ルーターやサービスの変更を一貫して検証
  2. 02バックエンド変更後のCLI出力を確認
  3. 03APIフィールドとレスポンス構造をテスト
  4. 04CLIとサーバー間のデータフローを調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lobehub/lobehub --skill cli-backend-testing

インストール後、Claude Code で/cli-backend-testingを入力して読み込まれたか確認します。

詳細

CLI + バックエンドの統合テスト

LobeHub CLI(lh)をローカル開発サーバーに接続して、バックエンドの変更を検証するための標準的なワークフローです。

使用する場面

  • TRPC ルーター/サービス/モデルの変更をエンドツーエンドで検証する場合
  • 新しい API フィールドやレスポンス構造の変更をテストする場合
  • バックエンドの変更後に CLI コマンドの出力を検証する場合
  • サーバーと CLI 間のデータフローの問題をデバッグする場合

前提条件

要件詳細
開発サーバーlocalhost:3011(Next.js)
CLI ソースlobehub/apps/cli/
CLI 開発モード認証情報を分離するために LOBEHUB_CLI_HOME=.lobehub-dev を使用します
認証ローカルサーバーへのデバイスコードフローでのログイン

クイックリファレンス

CLI の開発コマンドはすべて lobehub/apps/cli/ から実行します。

# Shorthand for all commands below
CLI="LOBEHUB_CLI_HOME=.lobehub-dev bun src/index.ts"

ワークフロー

ステップ 1:開発サーバーが起動していることを確認する

開発サーバーがすでに起動しているか確認します。

curl -s -o /dev/null -w '%{http_code}' http://localhost:3011/ 2> /dev/null
  • 接続できる場合(任意の HTTP ステータスが返される場合):サーバーは起動しています。ステップ 2 に進みます。
  • 接続できない場合:サーバーを起動します。
# From cloud repo root
pnpm run dev:next

再起動してサーバー側のコード変更を反映する場合:

lsof -ti:3011 | xargs kill
pnpm run dev:next

重要: サブモジュール内のサーバー側コード(lobehub/src/server/、lobehub/packages/)を変更した場合は、サーバーを再起動する必要があります。Next.js のホットリロードでは、サブモジュールのパッケージの変更が反映されないことがあります。

ステップ 2:CLI の認証を確認する

開発用認証情報がすでに存在するか確認します。

cat lobehub/apps/cli/.lobehub-dev/settings.json 2> /dev/null
  • ファイルが存在し、"serverUrl": "http://localhost:3011" が含まれている場合:すでに認証済みです。ステップ 3 に進みます。
  • ファイルがない、または別のサーバーを指している場合:ログインが必要です。ユーザーに次のコマンドを実行してもらいます。
! cd lobehub/apps/cli && LOBEHUB_CLI_HOME=.lobehub-dev bun src/index.ts login --server http://localhost:3011

ログインにはブラウザーでの対話型認証(OIDC デバイスコードフロー)が必要なため、ユーザー自身が ! プレフィックスを使って実行する必要があります。ログイン後、認証情報は lobehub/apps/cli/.lobehub-dev/ に保存され、セッションをまたいで保持されます。

ステップ 3:CLI コマンドでテストする

CLI はソースから実行されるため(bun src/index.ts)、CLI 側のコード変更は再ビルドせずにすぐ反映されます。

cd lobehub/apps/cli
LOBEHUB_CLI_HOME=.lobehub-dev bun src/index.ts <command>
ステップ 4:テストデータをクリーンアップする

検証中に作成したテストデータを削除します。

LOBEHUB_CLI_HOME=.lobehub-dev bun src/index.ts task delete < id > -y
LOBEHUB_CLI_HOME=.lobehub-dev bun src/index.ts agent delete < id > -y

よくあるテストパターン

タスクシステム
# List tasks
$CLI task list

# Create test data with nesting
$CLI task create -n "Root Task" -i "Test instruction"
$CLI task create -n "Child Task" -i "Sub instruction" --parent T-1

# View task detail (tests getTaskDetail service)
$CLI task view T-1

# View task tree
$CLI task tree T-1

# Test lifecycle
$CLI task edit T-1 --status running
$CLI task comment T-1 -m "Test comment"

# Clean up
$CLI task delete T-1 -y
エージェントシステム
# List agents
$CLI agent list

# View agent detail
$CLI agent view <agent-id>

# Run agent (tests agent execution pipeline)
$CLI agent run <agent-id> -m "Test prompt"
ドキュメントとナレッジベース
# List documents
$CLI doc list

# Create and view
$CLI doc create -t "Test Doc" -c "Content here"
$CLI doc view <doc-id>

# Knowledge base
$CLI kb list
$CLI kb tree <kb-id>
モデルとプロバイダー
# List models and providers
$CLI model list
$CLI provider list

# Test provider connectivity
$CLI provider test <provider-id>

開発・テストサイクル

バックエンド開発の標準的なサイクルです。

1. Make code changes (service/model/router/type)
         |
2. Run unit tests (fast feedback)
   bunx vitest run --silent='passed-only' '<test-file>'
         |
3. Restart dev server (if server-side changes)
   lsof -ti:3011 | xargs kill && pnpm run dev:next
         |
4. CLI verification (end-to-end)
   LOBEHUB_CLI_HOME=.lobehub-dev bun src/index.ts <command>
         |
5. Clean up test data
サーバーの再起動が必要な場合
変更箇所再起動が必要?
lobehub/src/server/(ルーター、サービス)はい
lobehub/packages/database/(モデル)はい
lobehub/packages/types/はい
lobehub/packages/prompts/はい
lobehub/apps/cli/(CLI コード)いいえ
src/(クラウドのオーバーライド)はい
サーバーの再起動が不要な場合

CLI は bun src/index.ts を使ってソースから実行されるため、lobehub/apps/cli/src/ の変更は次のコマンド実行時にすぐ反映されます。

トラブルシューティング

問題解決方法
No authentication foundlogin --server http://localhost:3011 を実行します
API 呼び出しで UNAUTHORIZEDトークンの有効期限が切れています。ログインを再実行します
ECONNREFUSED開発サーバーが起動していません。pnpm run dev:next で起動します
CLI に古いデータや動作が表示されるコードの変更を反映するには、サーバーを再起動する必要があります
ポート 3011 で EADDRINUSEサーバーはすでに起動しています。lsof -ti:3011 | xargs kill で終了します
ログインで誤ったサーバーが開く--server http://localhost:3011 フラグを使用する必要があります(環境変数は機能しません)

認証情報の分離

モード認証情報ディレクトリサーバー
開発lobehub/apps/cli/.lobehub-dev/localhost:3011
本番~/.lobehub/app.lobehub.com

2 つの環境は完全に分離されています。開発モードの認証情報は Git の対象外です。

コメント