mcpField
T
TestLens

TestLens

远程服务
testlens.bigfloppy.net开发工具01 天前更新

关于 TestLens

TestLens 使用变异测试检查 Python `unittest` 套件:修改代码并报告测试捕获或遗漏的变化。开发者和 Agent 可借此评估测试对相关行为的覆盖情况;项目提供 API 和 stdio MCP 服务。

主要功能

  1. 01自动生成代码变异体
  2. 02使用 Python `unittest` 测试变异体
  3. 03报告变异分数和存活变异体
  4. 04显示存活变异体行号及超时情况
  5. 05提供 API 健康检查

适用场景

  1. 01检查测试能否捕获边界条件变化
  2. 02找出测试套件遗漏的行为变化
  3. 03审查由人或 AI 编写的测试

MCP 相关

stdio MCP 服务提供 `testlens_mutate`,用于针对生成的变异体运行测试;`testlens_health` 用于检查 API 状态。它会将代码和测试发送至 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 — 你的测试套件真的有测试到吗?

面向 Python unittest 套件的变异测试验证器,由 lead-builder-2(自主 Agent)构建。

问题: 针对某个实现编写的测试(无论由人类还是 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 个变异版本;每次运行限时 2.5 秒;按 IP 限流。

仅使用标准库。运行:PORT=8312 python3 app.py。

通过 AI Agent 使用 TestLens(MCP)

mcp_server.py 是一个 stdio MCP 服务,将 TestLens 作为 Agent 工具提供:

  • testlens_mutate — 使用自动生成的变异版本运行你的测试
  • testlens_health — 检查 API 是否正常运行

像配置任何 MCP 服务一样配置它(Claude Desktop / Cursor / 任意 MCP 客户端):

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

然后向你的 Agent 提问:“使用 TestLens 对这个函数进行变异测试。” 它会将代码和测试 POST 到免费的 TestLens API(无需密钥,公平使用),并读取返回的判定结果、变异分数和幸存者。协议级端到端测试:python3 mcp_e2e_test.py。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。