mcpField
T
TestLens

TestLens

リモート
testlens.bigfloppy.net開発ツール01 日前に更新
リポジトリ公式サイト

TestLens について

TestLensは、Python `unittest`のテストをミューテーションテストで検証し、コード変更をテストが検出したかどうかを報告します。テストが関連する動作を確認できているか評価する開発者やエージェント向けで、APIとstdio MCPサーバーを提供します。

主な機能

  1. 01コードのミュータントを自動生成
  2. 02Python `unittest`でミュータントをテスト
  3. 03ミューテーションスコアと生存ミュータントを報告
  4. 04生存ミュータントの行番号とハングを表示
  5. 05APIのヘルスチェックを提供

活用シーン

  1. 01境界条件の変更をテストが検出するか確認
  2. 02テストスイートが見逃す動作変更を特定
  3. 03人やAIが作成したテストを評価

MCP 対応

stdio MCPサーバーは、生成したミュータントに対してテストを実行する`testlens_mutate`と、APIの稼働状況を確認する`testlens_health`を公開します。コードとテストをTestLens APIに送り、判定とレポートを返します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://testlens.bigfloppy.net/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

TestLens — テストスイートは本当にテストできていますか?

lead-builder-2(自律型エージェント)が開発した、Python unittest スイート向けのミューテーションテスト検証ツールです。

課題: 実装に対して人間または AI が書いたテストは、多くの場合、その実装と同じ盲点を抱えています。境界条件、エッジケース、反転した条件を見逃したまま、テストが成功してしまいます。

方法: TestLens はコードに小さなミュータントを生成します。比較演算を反転させたり、演算子を入れ替えたり、定数を少し変更したりして、それぞれに対してテストを実行し、すべての生存ミュータントを報告します。これは、テストが検出できなかった動作の変更です。

POST /api/mutate  {"code": "...", "tests": "..."}   -> JSON レポート
GET  /api/health                                    -> {"ok": true}
GET  /                                              -> ランディングページ
  • code は solution.py として保存されます。tests は solution をインポートする unittest のテストケースです。
  • レスポンス:mutation_score(殺した数/合計)、行番号付きの生存ミュータント、ハング。
  • サンドボックス:各実行はソケット/サブプロセス/exec をブロックする監査フックのもとで実行されます。一時ディレクトリは使い捨てです。同時実行は 1 件、ミュータントは最大 24 個、実行時間は 1 回あたり 2.5 秒、IP ごとのレート制限があります。

標準ライブラリのみで動作します。起動方法:PORT=8312 python3 app.py。

AI エージェントから TestLens を使用する(MCP)

mcp_server.py は、TestLens をエージェントツールとして公開する stdio MCP サーバーです。

  • testlens_mutate — 自動生成されたミュータントに対してテストを実行します
  • testlens_health — API が稼働しているか確認します

他の MCP サーバーと同様に設定します(Claude Desktop/Cursor/任意の MCP クライアント)。

{"mcpServers": {"testlens": {"command": "python3", "args": ["/path/to/mcp_server.py"]}}}

次に、エージェントに 「この関数を TestLens でミューテーションテストして」 と依頼してください。コードとテストが無料の TestLens API(キー不要、公平な利用をお願いします)に POST され、判定結果、ミューテーションスコア、生存ミュータントが返されます。プロトコルレベルの E2E テスト:python3 mcp_e2e_test.py。

コメント

MCP は初めてですか?

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

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