ジェネレーターCLIテスト
作成2026年4月27日Takeshi Takatsudo
Claude Codeスキルを使ったcreate-zudo-docジェネレーターCLIのテスト方法。
ジェネレーターCLIテスト
create-zudo-docジェネレーターCLIは、さまざまな機能の組み合わせで新しいzudo-docプロジェクトを生成します。テストでは、各組み合わせがビルド・実行でき、正しいファイルと設定が生成されることを検証します。
2つのClaude Codeスキルでこのワークフローを自動化しています:
| スキル | 目的 |
|---|---|
/ | 単一の生成パターンをテスト |
/ | 全9パターンを実行し、バグを修正して検証 |
テストパターン
各パターンは異なる機能の組み合わせを有効にします:
| パターン | 説明 |
|---|---|
barebone | すべてOFF — 最小構成 |
search | 検索のみ有効 |
i18n | i18nのみ有効 |
sidebar-filter | サイドバーフィルターのみ有効 |
claude-resources | Claude Resourcesのみ有効 |
design-token-panel | Design Token Panelのみ有効(API使用) |
light-dark | ライト・ダークカラースキームモード |
lang-ja | デフォルト言語を日本語に設定 |
all-features | すべてON |
テストの実行
全テストスイート
全9パターンをエンドツーエンドで実行し、失敗を自動修正して検証します:
/l-run-generator-cli-whole-test
ヘッドレスブラウザによるレンダリングチェック付き:
/l-run-generator-cli-whole-test --headless
単一パターン
1つのパターンを個別にテストします:
/l-generator-cli-tester barebone
/l-generator-cli-tester all-features --headless
各テストのチェック内容
各パターンは以下のステップを実行します:
- スキャフォールド — パターン固有のフラグでジェネレーターCLI(またはプログラマティックAPI)を実行
- インストール — 生成されたプロジェクトで
pnpm install - ビルド —
pnpm buildで静的エクスポートの成功を検証 - 開発サーバー —
pnpm devを起動し、8秒待ってプロセスがまだ実行中か確認 - ファイル検証 — 有効な機能に基づいて、期待されるファイルの存在/不在を確認
- 設定検証 — 生成された
settings.tsを読み、正しい値を確認 - ショーケース比較 — 生成されたコードをメインのzudo-docショーケースと比較
- ヘッドレスブラウザ(
--headless使用時) — 実際のブラウザでページをレンダリングし、JSエラーを確認、視覚要素(検索アイコン、言語切り替え、テーマトグルなど)を検証
バグ修正ワークフロー
/スキルには構造化されたバグ修正フェーズがあります:
- フェーズ1 — 全9パターンを実行し、結果を収集
- フェーズ2 — 各失敗について:失敗ステップの診断、関連ソースファイルの確認、最小限の修正適用、CLIの再ビルドと再テスト、個別コミット
- フェーズ3 — 全9パターンを最初から再実行し、リグレッションがないことを確認
- フェーズ4 — サマリーレポートを出力
よくある失敗パターン
| 失敗内容 | 原因 | 修正対象 |
|---|---|---|
| ビルド時にモジュールが見つからない | 生成されたpackage.jsonに依存関係がない | scaffold.ts — generatePackageJson() |
| astro.configでインポートが見つからない | 機能のインテグレーションが含まれていない | astro-config-gen.ts |
| settings.tsの型エラー | 設定フィールドが不足または不正 | settings-gen.ts |
| 機能コンポーネントが見つからない | 機能モジュールのファイルコピーまたはアンカー不一致 | features/*.tsまたはtemplates/features/*/files/ |
| アンカーが出力に残っている | injectionアンカーが未クリーンアップ | compose.ts — cleanAnchors() |
主要なジェネレーターファイル
| ファイル | 役割 |
|---|---|
packages/ | パイプライン統括: ベースコピー、設定生成、機能合成 |
packages/ | 合成エンジン: injection、アンカークリーンアップ、機能解決 |
packages/ | 各機能のinjection定義モジュール |
packages/ | astro.config.tsのプログラマティック生成 |
packages/ | content.config.tsのプログラマティック生成 |
packages/ | settings.tsの生成 |
packages/ | 機能定義、カラースキームリスト |
packages/ | CLI引数のパース |
packages/ | プログラマティックAPI |
注意事項
- テストディレクトリは
__inbox/(gitignored)に作成され、リポジトリを汚染しません bareboneパターンがベースライン — 失敗した場合、他のテストの前に修正してくださいdesignTokenPanelは--design-token-panelCLIフラグとしても利用可能ですが、design-token-panelやall-featuresなどのパターンは他のテストパターンとの一貫性のためプログラマティックAPIで駆動しています--headlessフラグはプロセスレベルのチェックに加えて、ブラウザレベルのレンダリングチェックを追加します- テスト前と各修正後には必ずCLIを再ビルド(
packages/create-zudo-docでpnpm build)してください