polyglot-test-agent について
複数のエージェントを連携させ、プロジェクト全体または指定ファイルのユニットテストを生成するスキルです。既存の規約に沿ってテストを追加したい開発者向けに、調査・計画から実装、ビルド、テスト、修正、整形まで進めます。
主な機能
- 01言語、テストフレームワーク、構成の検出
- 02段階的なテスト実装計画
- 03プロジェクトのパターンに沿ったテスト作成
- 04ビルドとテストによる検証
- 05エラー修正とフォーマット確認
活用シーン
- 01プロジェクト全体のユニットテスト生成
- 02指定したソースファイルへのテスト追加
- 03新機能や境界ケースのテスト作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill polyglot-test-agentインストール後、Claude Code で/polyglot-test-agentを入力して読み込まれたか確認します。
同梱ファイルunit-test-generation.prompt.md
詳細
多言語テスト生成スキル
協調型マルチエージェントパイプラインを使用して、あらゆるプログラミング言語向けの包括的で実行可能な単体テストを生成する AI 搭載スキルです。
このスキルを使用する場面
次のような場合にこのスキルを使用します:
- プロジェクト全体または特定のファイルの単体テストを生成する
- 既存のコードベースのテストカバレッジを向上させる
- プロジェクトの規約に従ったテストファイルを作成する
- 実際にコンパイルして合格するテストを書く
- 新機能やテストされていないコードのテストを追加する
仕組み
このスキルは、複数の専門エージェントを 調査 → 計画 → 実装 パイプラインで連携させます:
パイプラインの概要
┌─────────────────────────────────────────────────────────────┐
│ TEST GENERATOR │
│ Coordinates the full pipeline and manages state │
└─────────────────────┬───────────────────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────────┐
│ RESEARCHER│ │ PLANNER │ │ IMPLEMENTER │
│ │ │ │ │ │
│ Analyzes │ │ Creates │ │ Writes tests │
│ codebase │→ │ phased │→ │ per phase │
│ │ │ plan │ │ │
└───────────┘ └───────────┘ └───────┬───────┘
│
┌─────────┬───────┼───────────┐
▼ ▼ ▼ ▼
┌─────────┐ ┌───────┐ ┌───────┐ ┌───────┐
│ BUILDER │ │TESTER │ │ FIXER │ │LINTER │
│ │ │ │ │ │ │ │
│ Compiles│ │ Runs │ │ Fixes │ │Formats│
│ code │ │ tests │ │ errors│ │ code │
└─────────┘ └───────┘ └───────┘ └───────┘
手順ごとの説明
ステップ 1: ユーザーのリクエストを判断する
ユーザーが何を求めているのか、どの範囲を対象としているのかを確実に理解してください。 ユーザーがテストスタイル、カバレッジ目標、規約について強い要件を示していない場合は、unit-test-generation.prompt.md からガイドラインを入手してください。このプロンプトは、規約の発見方法、パラメーター化戦略、カバレッジ目標(80% を目指す)、言語固有のパターンに関するベストプラクティスを提供します。
ステップ 2: テストジェネレーターを呼び出す
まず、テスト生成リクエストを指定して polyglot-test-generator エージェントを呼び出します:
Generate unit tests for [path or description of what to test], following the [unit-test-generation.prompt.md](unit-test-generation.prompt.md) guidelines
テストジェネレーターがパイプライン全体を自動的に管理します。
ステップ 3: 調査フェーズ(自動)
polyglot-test-researcher エージェントがコードベースを分析して以下を理解します:
- 言語とフレームワーク: C#、TypeScript、Python、Go、Rust、Java などを検出します
- テストフレームワーク: MSTest、xUnit、Jest、pytest、go test などを特定します
- プロジェクト構造: ソースファイル、既存のテスト、依存関係をマッピングします
- ビルドコマンド: プロジェクトのビルド方法とテスト方法を発見します
出力: .testagent/research.md
ステップ 4: 計画フェーズ(自動)
polyglot-test-planner エージェントが構造化された実装計画を作成します:
- ファイルを論理的なフェーズにグループ化します(通常 2〜5 フェーズ)
- 複雑さと依存関係に基づいて優先順位を付けます
- 各ファイルのテストケースを指定します
- フェーズごとに成功基準を定義します
出力: .testagent/plan.md
ステップ 5: 実装フェーズ(自動)
polyglot-test-implementer エージェントが各フェーズを順番に実行します:
- 読み取り ソースファイルを読んで API を理解します
- 作成 プロジェクトのパターンに従ってテストファイルを作成します
- ビルド
polyglot-test-builderサブエージェントを使用してコンパイルを検証します - テスト
polyglot-test-testerサブエージェントを使用してテストが合格することを検証します - 修正 エラーが発生した場合は
polyglot-test-fixerサブエージェントを使用して修正します - リント
polyglot-test-linterサブエージェントを使用してコードをフォーマットします
各フェーズは次のフェーズが始まる前に完了し、段階的な進捗を確実にします。
カバレッジの種類
- ハッピーパス: 有効な入力が期待される出力を生成します
- エッジケース: 空の値、境界値、特殊文字
- エラーケース: 無効な入力、null の処理、例外
状態管理
すべてのパイプラインの状態は .testagent/ フォルダーに保存されます:
| ファイル | 目的 |
|---|---|
.testagent/research.md | コードベース分析の結果 |
.testagent/plan.md | フェーズ分けされた実装計画 |
.testagent/status.md | 進捗の追跡(任意) |
例
例 1: プロジェクト全体のテスト
Generate unit tests for my Calculator project at C:\src\Calculator
例 2: 特定のファイルのテスト
Generate unit tests for src/services/UserService.ts
例 3: 対象を絞ったカバレッジ
Add tests for the authentication module with focus on edge cases
エージェントリファレンス
| エージェント | 目的 | ツール |
|---|---|---|
polyglot-test-generator | パイプラインを調整 | runCommands, codebase, editFiles, search, runSubagent |
polyglot-test-researcher | コードベースを分析 | runCommands, codebase, editFiles, search, fetch, runSubagent |
polyglot-test-planner | テスト計画を作成 | codebase, editFiles, search, runSubagent |
polyglot-test-implementer | テストファイルを作成 | runCommands, codebase, editFiles, search, runSubagent |
polyglot-test-builder | コードをコンパイル | runCommands, codebase, search |
polyglot-test-tester | テストを実行 | runCommands, codebase, search |
polyglot-test-fixer | エラーを修正 | runCommands, codebase, editFiles, search |
polyglot-test-linter | コードをフォーマット | runCommands, codebase, search |
要件
- プロジェクトにビルド/テストシステムが構成されている必要があります
- テストフレームワークがインストールされている(またはインストール可能である)必要があります
- GitHub Copilot 拡張機能を備えた VS Code
トラブルシューティング
テストがコンパイルされない
polyglot-test-fixer エージェントがコンパイルエラーの解決を試みます。想定されるテスト構造については .testagent/plan.md を確認してください。
テストが失敗する
テスト出力を確認し、テストの期待値を調整してください。一部のテストでは依存関係のモックが必要になる場合があります。
誤ったテストフレームワークが検出される
最初のリクエストで希望するフレームワークを指定してください: 「Jest テストを生成する...」