测试运行器 MCP
模型上下文协议 (MCP) 服务器,用于运行和解析来自多个测试框架的测试结果。该服务器提供统一的接口来执行测试并处理其输出,支持:
- Bats(Bash 自动测试系统)
- Pytest(Python测试框架)
- Flutter 测试
- Jest(JavaScript 测试框架)
- Go 测试
- 防锈测试(货物测试)
- 通用(用于任意命令执行)
安装
先决条件
需要针对各自的测试类型安装以下测试框架:
- 蝙蝠:
apt-get install bats
或brew install bats
- Pytest:
pip install pytest
- Flutter:按照Flutter 安装指南进行操作
- 开玩笑:
npm install --save-dev jest
- Go:按照Go 安装指南操作
- Rust:遵循Rust 安装指南
用法
配置
将测试运行器添加到您的 MCP 设置中(例如,在claude_desktop_config.json
或cline_mcp_settings.json
中):
注意:对于 Flutter 测试,请确保替换:
/opt/homebrew/Caskroom/flutter/3.27.2/flutter
替换为你的实际 Flutter 安装路径/Users/username/.pub-cache
替换为你的实际 pub 缓存路径- 更新 PATH 以包含系统的实际路径
您可以通过运行以下命令找到这些值:
运行测试
使用具有以下参数的run_tests
工具:
每个框架的示例:
安全功能
测试运行器包含内置的安全功能,以防止执行潜在的有害命令,特别是对于generic
框架:
- 命令验证
- 默认阻止
sudo
和su
- 防止危险命令,如
rm -rf /
- 阻止在安全位置之外进行文件系统写入操作
- 默认阻止
- 环境变量清理
- 过滤掉潜在的危险环境变量
- 防止覆盖关键系统变量
- 确保安全路径处理
- 可配置的安全性
- 必要时通过
securityOptions
覆盖安全限制 - 对安全功能的细粒度控制
- 标准测试使用的默认安全设置
- 必要时通过
您可以配置的安全选项:
Flutter 测试支持
测试运行器包括对 Flutter 测试的增强支持:
- 环境设置
- 自动 Flutter 环境配置
- PATH 和 PUB_CACHE 设置
- Flutter 安装验证
- 错误处理
- 堆栈跟踪收集
- 断言错误处理
- 异常捕获
- 测试失败检测
- 输出处理
- 完成测试输出捕获
- 堆栈跟踪保存
- 详细的错误报告
- 原始输出保存
Rust 测试支持
测试运行器为 Rust 的cargo test
提供了特定的支持:
- 环境设置
- 自动设置 RUST_BACKTRACE=1 以获得更好的错误消息
- 输出解析
- 解析单个测试结果
- 捕获失败测试的详细错误消息
- 识别被忽略的测试
- 提取摘要信息
通用测试支持
对于 CI/CD 管道、通过act
执行的 GitHub Actions 或任何其他命令执行,通用框架提供:
- 自动输出分析
- 尝试将输出分割成逻辑块
- 标识节标题
- 检测通过/失败指标
- 即使对于未知格式也能提供合理的输出结构
- 灵活集成
- 可与任意 shell 命令配合使用
- 无特定格式要求
- 非常适合与
act
、Docker 和自定义脚本等工具集成
- 安全功能
- 命令验证以防止有害操作
- 必要时可配置为允许特定的提升权限
输出格式
测试运行器生成结构化输出,同时保留完整的测试输出:
结果保存在指定的输出目录中:
test_output.log
:原始测试输出test_errors.log
:错误消息(如果有)test_results.json
:结构化测试结果summary.txt
:人类可读的摘要
发展
设置
- 克隆存储库
- 安装依赖项:
- 构建项目:
运行测试
该测试套件包括所有受支持框架的测试,并验证成功和失败的测试场景。
持续集成/持续交付
该项目使用 GitHub Actions 进行持续集成:
- 在 Node.js 18.x 和 20.x 上进行自动化测试
- 测试结果已上传为工件
- Dependabot 配置为自动依赖项更新
贡献
- 分叉存储库
- 创建你的功能分支
- 提交你的更改
- 推送到分支
- 创建拉取请求
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
通过模型上下文协议接口,方便Bats、Pytest、Flutter、Jest、Go等各种测试框架统一执行和结果解析。
Related Resources
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that integrates with the Qase test management platform, allowing users to create and retrieve test cases, manage test runs, and interact with Qase projects.Last updated -1JavaScript
- -securityAlicense-qualityA Model Context Protocol (MCP) server implementation that allows AI assistants to run k6 load tests through natural language commands, supporting custom test durations and virtual users.Last updated -1PythonMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that allows AI assistants to execute and manage JMeter performance tests through natural language commands.Last updated -227Python
- AsecurityAlicenseAqualityA Model Context Protocol server that integrates essential penetration testing tools (Nmap, Gobuster, Nikto, John the Ripper) into a unified natural language interface, allowing security professionals to execute and chain multiple tools through conversational commands.Last updated -83642JavaScriptMIT License