SuperAPI AI 工具集

mcp-csharp-test

智能体与模型

查看项目

更新于 10-16 06:45

技能介绍

用途:为 C# MCP 服务器添加自动化测试,分两个层次——针对单个工具方法的单元测试,以及通过 MCP 协议在内存中验证完整流程的集成测试。适用于为 MCP 服务器补充测试、用模拟依赖测试工具方法、验证工具列表与调用、搭建 CI 测试流水线。

主要能力:单元测试直接调用工具方法,最快且隔离性最好;对有依赖注入的工具可模拟依赖(如模拟 HttpMessageHandler 而非 HttpClient)。集成测试使用 ModelContextProtocol.Client 建立客户端-服务器连接,通过 ListToolsAsync() 验证工具列表、CallToolAsync() 验证工具调用结果。还包含评估(evaluations)编写指导,用于衡量 LLM 使用工具的效果。

使用方式:先创建测试项目,命令为 dotnet new xunit -n <ServerName>.Tests,随后 cd <ServerName>.Tests、dotnet add reference ../<ServerName>/<ServerName>.csproj、dotnet add package ModelContextProtocol、dotnet add package Moq、dotnet add package FluentAssertions。运行测试用 dotnet test,可按类过滤 dotnet test --filter "FullyQualifiedName~MyToolTests",收集覆盖率用 dotnet test --collect:"XPlat Code Coverage"。

适用场景与限制:需要已有 MCP 服务器项目;若尚无服务器应先用 mcp-csharp-create,服务器无法运行应先用 mcp-csharp-debug,仅需手动交互测试也使用 mcp-csharp-debug 的 MCP Inspector。集成测试若在 CreateAsync 处挂起,通常是服务器启动失败,需先确认 dotnet build 成功,stdio 模式下避免 stdout 日志。CI 中应先执行 dotnet build 再测试,避免仅用 --no-build。完整测试套件较慢,开发时建议用 --filter。更多测试模式与评估细节见 references/test-patterns.md 和 references/evaluations.md。