mcpField
G
Generate Unit Testing Server

Generate Unit Testing Server

ローカル
github.com/Shentia開発ツール350 週間前に更新

Generate Unit Testing Server について

Angular、React、Next.js のプロジェクトを検出し、Jest、Karma/Jasmine、Vitest でユニットテストを生成する MCP サーバーです。テストの実行とカバレッジ計測にも対応し、開発者が生成コードを確認できます。

主な機能

  1. 01プロジェクトとテストフレームワークの検出
  2. 02公開メソッドのテスト生成
  3. 03Jest、Karma/Jasmine、Vitest に対応
  4. 04テスト実行とカバレッジ計測
  5. 05ソースコードとテストの並列表示

活用シーン

  1. 01React コンポーネントのテスト作成
  2. 02Angular サービスやパイプのテスト
  3. 03生成テストとカバレッジの確認

MCP 対応

プロジェクト検出、テストフレームワークのインストール、テスト生成、検証、コード比較のツールを MCP クライアントに提供します。テストドキュメントのリソースとテスト生成用プロンプトも公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Generate Unit Testing Server

Jest、Karma/Jasmine、その他のテストフレームワークを使用して、Angular、React、Next.js プロジェクト向けの包括的なユニットテストを自動生成する、インテリジェントな Model Context Protocol(MCP)サーバーです。

画像

機能

  • 🔍 プロジェクトの自動検出 - Angular、React、Next.js プロジェクトとそのバージョンを検出します
  • 📦 フレームワーク管理 - テストフレームワークを確認し、自動インストールを提案します
  • 📚 ドキュメントのリアルタイム取得 - テスト生成前に、Jest と Jasmine の最新ドキュメントを取得します
  • 🤖 LLM による生成 - Claude Sonnet 4.5+ を使用して、インテリジェントにテストを生成します
  • 🎯 高いカバレッジ目標 - コードカバレッジ 85% 超を目標とするテストを生成します
  • ✅ すべてのパブリックメソッド - エクスポートされた関数とパブリッククラスメソッドすべてのテストを作成します
  • 🔄 並べて表示して検証 - ソースコードとテストコードを表示し、簡単に確認できます
  • 🛠️ 複数のフレームワーク - Jest、Karma/Jasmine、Vitest をサポートします

インストール

npm install
npm run build

使用方法

MCP サーバーとして

MCP クライアントの設定に追加します(例:Claude Desktop、MCP 対応の VS Code)。

{
  "mcpServers": {
    "generate-unit-testing": {
      "command": "node",
      "args": ["/path/to/GenerateUnitTesting/build/index.js"]
    }
  }
}
利用可能なツール
1. detect_project

プロジェクトの種類とテストフレームワークを検出します。

{
  "filePath": "/path/to/your/project/src/component.ts"
}
2. install_test_framework

ユーザーの許可を得て、不足しているテストフレームワークをインストールします。

{
  "projectPath": "/path/to/your/project",
  "framework": "jest",
  "autoInstall": false
}
3. generate_unit_test

ソースファイル向けの包括的なユニットテストを生成します。

{
  "filePath": "/path/to/your/project/src/component.ts",
  "framework": "jest",
  "coverageTarget": 85,
  "generateForAllPublicMethods": true,
  "includeEdgeCases": true
}
4. validate_test

生成したテストを実行し、カバレッジを算出します。

{
  "testFilePath": "/path/to/your/project/src/component.test.ts",
  "framework": "jest"
}
5. display_side_by_side

ソースコードとテストコードを並べて比較表示します。

{
  "sourceFilePath": "/path/to/your/project/src/component.ts",
  "testFilePath": "/path/to/your/project/src/component.test.ts"
}
利用可能なリソース
  • docs://jest/latest - Jest の最新ドキュメント
  • docs://jasmine/latest - Jasmine の最新ドキュメント
利用可能なプロンプト
  • generate-unit-test - 包括的なユニットテスト生成プロンプト
  • generate-edge-cases - エッジケースのテスト生成プロンプト
  • generate-mocks - モック生成プロンプト

アーキテクチャ

src/
├── index.ts                 # Main MCP server entry point
├── types.ts                 # TypeScript type definitions
├── tools/
│   ├── detectProject.ts     # Project and framework detection
│   └── testGenerator.ts     # Test generation logic
├── resources/
│   └── documentationFetcher.ts  # Live doc fetching from Jest/Jasmine
├── templates/
│   └── testTemplates.ts     # Framework-specific test templates
├── prompts/
│   └── testPrompts.ts       # LLM prompts for test generation
└── utils/
    ├── fileUtils.ts         # File system utilities
    └── codeAnalyzer.ts      # AST-based code analysis

ワークフロー

  1. プロジェクト検出 - package.json を解析し、プロジェクトの種類と既存のテスト設定を特定します
  2. フレームワークの確認 - テストフレームワークがインストールされているか確認し、不足している場合はインストールを促します
  3. ドキュメントの取得 - 公式ソースからフレームワークの最新ドキュメントを取得します
  4. コード解析 - Babel を使用してソースコードを解析し、関数、クラス、メソッドを抽出します
  5. テスト生成 - コンテキスト(コード+ドキュメント+テンプレート)を含めて LLM を使用し、包括的なテストを生成します
  6. 検証 - テストを実行し、カバレッジを算出します
  7. 表示 - 開発者が確認できるよう、比較結果を並べて表示します

サポート対象のフレームワーク

Jest
  • React および Next.js プロジェクト
  • TypeScript/JavaScript
  • 最新の async/await パターン
  • モック関数とスパイ
Karma/Jasmine
  • Angular プロジェクト
  • TestBed によるコンポーネントのテスト
  • サービスとパイプのテスト
  • 従来の describe/it 構文

カバレッジ目標

このサーバーは、次のテストを生成してコードカバレッジ 85% 超を目指します。

  • すべてのパブリック関数のテスト
  • すべてのパブリッククラスメソッドのテスト
  • エッジケースのシナリオ
  • エラー処理のテスト
  • 非同期処理のテスト
  • 依存関係のモック実装

出力例

React コンポーネントの場合:

// Original: Button.tsx
export const Button = ({ onClick, label }) => {
  return <button onClick={onClick}>{label}</button>;
};

生成されるテスト:

// Generated: Button.test.tsx
import { render, fireEvent } from '@testing-library/react';
import { Button } from './Button';

describe('Button', () => {
  it('should render with label', () => {
    const { getByText } = render(<Button label="Click me" onClick={() => {}} />);
    expect(getByText('Click me')).toBeInTheDocument();
  });

  it('should call onClick when clicked', () => {
    const handleClick = jest.fn();
    const { getByText } = render(<Button label="Click me" onClick={handleClick} />);
    fireEvent.click(getByText('Click me'));
    expect(handleClick).toHaveBeenCalledTimes(1);
  });

  // ... more tests for edge cases;

必要条件

  • Node.js 18+
  • TypeScript 5+
  • MCP クライアント(Claude Desktop、MCP 拡張機能を備えた VS Code など)

開発

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run watch

# Start server
npm start

設定

サーバーは次の項目を自動的に検出します。

  • パッケージマネージャー(npm、yarn、pnpm)
  • プロジェクトの種類(Angular、React、Next.js)
  • 既存のテストフレームワーク
  • TypeScript/JavaScript

手動での設定は不要です!

ライセンス

MIT

コントリビューション

コントリビューションを歓迎します!次の点をご確認ください。

  • コードが既存のパターンに従っていること
  • 新機能にテストが含まれていること
  • ドキュメントが更新されていること

サポート

  • 問題や質問がある場合は、リポジトリで issue を作成してください。
  • 作者:Ahmadreza Shamimi (https://github.com/shentia)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。