Token导航 LogoToken导航

MCP Server · 开发工具

Test Runner MCP

一个支持多种测试框架的统一测试执行和结果解析服务,适用于自动化测试和持续集成场景。

stdio官方级别未说明来源级核验工具 1
测试框架安全执行TypeScript自动化测试

快速开始

作者 / 组织
privsim
提供方
privsim
运行时
Node.js

工具数量

1

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

16

仓库热度

收录来源

3 个

MCP World

选型结论

Test Runner MCP 属于开发工具类 MCP Server,公开资料标注 1 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

npx test-runner run flutter-tester --path=

客户端配置示例

{
  "mcpServers": {
    "mcp-test-runner": {
      "command": "npx",
      "args": [
        "test-runner",
        "run",
        "flutter-tester",
        "--path="
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 1 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

测试运行器MCP

用于运行和解析来自多个测试框架的测试结果的模型上下文协议(MCP)服务器。该服务器为执行测试和处理其输出提供了一个统一的接口,支持:

  • Bats(Bash自动测试系统)
  • Pytest(Python测试框架)
  • 颤振试验
  • Jest(JavaScript测试框架)
  • Go测试
  • 锈蚀试验(货物试验)
  • 通用(用于任意命令执行)

安装

npm install test-runner-mcp

先决条件

需要为各自的测试类型安装以下测试框架:

用法

配置

将测试运行器添加到MCP设置中(例如 claude_desktop_config.json 或 cline_mcp_settings.json):

{
  "mcpServers": {
    "test-runner": {
      "command": "node",
      "args": ["/path/to/test-runner-mcp/build/index.js"],
      "env": {
        "NODE_PATH": "/path/to/test-runner-mcp/node_modules",
        // Flutter-specific environment (required for Flutter tests)
        "FLUTTER_ROOT": "/opt/homebrew/Caskroom/flutter/3.27.2/flutter",
        "PUB_CACHE": "/Users/username/.pub-cache",
        "PATH": "/opt/homebrew/Caskroom/flutter/3.27.2/flutter/bin:/usr/local/bin:/usr/bin:/bin"
      }
    }
  }
}

注意:对于Flutter测试,请确保替换:

  • /opt/homebrew/Caskroom/flutter/3.27.2/flutter 使用您实际的Flutter安装路径
  • /Users/username/.pub-cache 使用您的实际发布缓存路径
  • 更新PATH以包含系统的实际路径

您可以通过运行以下命令找到这些值:

# Get Flutter root
flutter --version

# Get pub cache path
echo $PUB_CACHE   # or default to $HOME/.pub-cache

# Get Flutter binary path
which flutter

运行测试

使用 run_tests 工具具有以下参数:

{
  "command": "test command to execute",
  "workingDir": "working directory for test execution",
  "framework": "bats|pytest|flutter|jest|go|rust|generic",
  "outputDir": "directory for test results",
  "timeout": "test execution timeout in milliseconds (default: 300000)",
  "env": "optional environment variables",
  "securityOptions": "optional security options for command execution"
}

每个框架的示例:

// Bats
{
  "command": "bats test/*.bats",
  "workingDir": "/path/to/project",
  "framework": "bats",
  "outputDir": "test_reports"
}

// Pytest
{
  "command": "pytest test_file.py -v",
  "workingDir": "/path/to/project",
  "framework": "pytest",
  "outputDir": "test_reports"
}

// Flutter
{
  "command": "flutter test test/widget_test.dart",
  "workingDir": "/path/to/project",
  "framework": "flutter",
  "outputDir": "test_reports",
  "FLUTTER_ROOT": "/opt/homebrew/Caskroom/flutter/3.27.2/flutter",
  "PUB_CACHE": "/Users/username/.pub-cache",
  "PATH": "/opt/homebrew/Caskroom/flutter/3.27.2/flutter/bin:/usr/local/bin:/usr/bin:/bin"
}

// Jest
{
  "command": "jest test/*.test.js",
  "workingDir": "/path/to/project",
  "framework": "jest",
  "outputDir": "test_reports"
}

// Go
{
  "command": "go test ./...",
  "workingDir": "/path/to/project",
  "framework": "go",
  "outputDir": "test_reports"
}

// Rust
{
  "command": "cargo test",
  "workingDir": "/path/to/project",
  "framework": "rust",
  "outputDir": "test_reports"
}

// Generic (for arbitrary commands, CI/CD tools, etc.)
{
  "command": "act -j build",
  "workingDir": "/path/to/project",
  "framework": "generic",
  "outputDir": "test_reports"
}

// Generic with security overrides
{
  "command": "sudo docker-compose -f docker-compose.test.yml up",
  "workingDir": "/path/to/project",
  "framework": "generic",
  "outputDir": "test_reports",
  "securityOptions": {
    "allowSudo": true
  }
}

安全特性

测试运行器包括内置的安全功能,以防止执行可能有害的命令,特别是对于 generic 框架:

  1. 命令验证

- 积木 sudo 和 su 默认情况下 - 防止危险命令,如 rm -rf / - 阻止安全位置之外的文件系统写入操作

  1. 环境变量消毒

- 过滤掉潜在危险的环境变量 - 防止覆盖关键系统变量 - 确保安全的路径处理

  1. 可配置的安全性

- 必要时通过以下方式覆盖安全限制 securityOptions - 对安全功能的细粒度控制 - 标准测试使用的默认安全设置

您可以配置的安全选项:

{
  "securityOptions": {
    "allowSudo": false,        // Allow sudo commands
    "allowSu": false,          // Allow su commands
    "allowShellExpansion": true, // Allow shell expansion like $() or backticks
    "allowPipeToFile": false   // Allow pipe to file operations (> or >>)
  }
}

颤振测试支持

测试运行器包括对Flutter测试的增强支持:

  1. 环境设置

- Flutter环境自动配置 - 路径和PUB_CACHE设置 - 颤振安装验证

  1. 错误处理

- 堆栈跟踪收集 - 断言错误处理 - 异常捕获 - 测试失败检测

  1. 输出处理

- 完成测试输出捕获 - 堆栈痕迹保存 - 详细的错误报告 - 原始输出保存

锈蚀测试支持

测试运行器为Rust的 cargo test:

  1. 环境设置

- 自动设置RUST_BACKTRACE=1以获得更好的错误消息

  1. 输出解析

- 分析单个测试结果 - 捕获失败测试的详细错误消息 - 识别被忽略的测试 - 提取摘要信息

通用测试支持

对于CI/CD管道,GitHub操作通过 act或任何其他命令执行,通用框架提供:

  1. 自动输出分析

- 尝试将输出分割成逻辑块 - 标识节标题 - 检测通过/失败指示器 - 即使对于未知格式,也能提供合理的输出结构

  1. 柔性集成

- 适用于任意shell命令 - 无特定格式要求 - 非常适合与以下工具集成 act、Docker和自定义脚本

  1. 安全特性

- 命令验证以防止有害操作 - 可以配置为在必要时允许特定的提升权限

输出格式

测试运行器产生结构化输出,同时保留完整的测试输出:

interface TestResult {
  name: string;
  passed: boolean;
  output: string[];
  rawOutput?: string;  // Complete unprocessed output
}

interface TestSummary {
  total: number;
  passed: number;
  failed: number;
  duration?: number;
}

interface ParsedResults {
  framework: string;
  tests: TestResult[];
  summary: TestSummary;
  rawOutput: string;  // Complete command output
}

结果保存在指定的输出目录中:

  • test_output.log:原始测试输出
  • test_errors.log:错误消息(如有)
  • test_results.json:结构化测试结果
  • summary.txt:人类可读摘要

发展

设置

  1. 克隆存储库
  2. 安装依赖项:
   npm install
  1. 构建项目:
   npm run build

运行测试

npm test

测试套件包括对所有支持框架的测试,并验证成功和失败的测试场景。

CI/CD

该项目使用GitHub Actions进行持续集成:

  • Node.js 18.x和20.x的自动测试
  • 测试结果作为工件上传
  • Dependabot已配置为自动更新依赖关系

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

工具与能力

工具数量

1

资源数量

0

提示词数量

0

能力标签

测试框架TypeScript本地部署自动化测试持续集成多语言支持安全执行

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 1 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 3 个目录同时收录,信息可以交叉核对。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Test Runner MCP

MCP World · 本页

1stdio有3 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Test Runner MCP 怎么安装?

公开资料给出的安装命令是 npx test-runner run flutter-tester --path=,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Test Runner MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Test Runner MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Test Runner MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Test Runner MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP