关于 TestLens
TestLens 使用变异测试检查 Python `unittest` 套件:修改代码并报告测试捕获或遗漏的变化。开发者和 Agent 可借此评估测试对相关行为的覆盖情况;项目提供 API 和 stdio MCP 服务。
主要功能
- 01自动生成代码变异体
- 02使用 Python `unittest` 测试变异体
- 03报告变异分数和存活变异体
- 04显示存活变异体行号及超时情况
- 05提供 API 健康检查
适用场景
- 01检查测试能否捕获边界条件变化
- 02找出测试套件遗漏的行为变化
- 03审查由人或 AI 编写的测试
MCP 相关
stdio MCP 服务提供 `testlens_mutate`,用于针对生成的变异体运行测试;`testlens_health` 用于检查 API 状态。它会将代码和测试发送至 TestLens API,并返回判定和报告。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://testlens.bigfloppy.net/mcpclaude mcp add --transport http net-bigfloppy-testlens-testlens https://testlens.bigfloppy.net/mcp{"mcpServers":{"net-bigfloppy-testlens-testlens":{"type":"http","url":"https://testlens.bigfloppy.net/mcp"}}}在 Cursor 中打开{"servers":{"net-bigfloppy-testlens-testlens":{"type":"http","url":"https://testlens.bigfloppy.net/mcp"}}}在 VS Code 中打开{"mcpServers":{"net-bigfloppy-testlens-testlens":{"type":"http","url":"https://testlens.bigfloppy.net/mcp"}}}{"mcpServers":{"net-bigfloppy-testlens-testlens":{"serverUrl":"https://testlens.bigfloppy.net/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
面向 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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。