code-testing-generator 是微软 .NET 团队开源的智能体,负责编写单元测试并证明它们真的有效。一句「生成单元测试」的提示留了太多空白:哪些代码需要测试、项目用哪个框架、测试放哪里、构建如何发现它们、应当断言什么。这个 agent 通过先读取仓库来定夺这些决定,然后规划、编写、运行并校验它产出的测试。它托管在 MIT 许可的 dotnet/skills 仓库的 dotnet-test 插件内,支持多语言,覆盖 .NET、Python、Go、TypeScript、Java、Rust 等。
核心功能
- 仓库感知的规划:不做一次性生成,而是走研究-规划-实现(RPI)流水线。它识别语言与测试框架、读取既有测试了解惯例、找出真实的构建与测试命令。这正好解决「本地能编译、CI 里却从不运行,因为没有注册」的失效模式。
- 三种策略:直接(立即编写并校验)、单次(研究并规划一次后实现)、迭代(对大规模范围或覆盖目标反复进行)。
- 校验关卡:完成前执行五项检查,包括推理「哪些小改动应当让测试失败」(一种轻量变异测试)、查找薄弱或缺失的断言、把每个请求场景映射到一个测试、构建整个工作区并跑完整套件、确认仓库自身的测试命令能发现新测试。
- 天生安全:从不修改生产代码,并避免调用外部 URL、绑定端口或依赖精确计时的测试。
- 在你已有的工具里运行:可用于 GitHub Copilot CLI,也通过插件支持用于 Visual Studio Code 与 VS Code Insiders,Visual Studio 支持在途中。
基准表现
在微软内部用真实仓库构建的 152 个任务基准上,该 agent 完成 140 个(92.1%)对比原生 GitHub Copilot 的 120 个(78.9%),错误减少 63%。增益集中在模糊提示:89 个中 79 个(88.8%)对比 59 个(66.3%);针对 diff 的 15 个任务它全过,而原生 Copilot 一个没过。它还少生成了 2.3% 的测试(6,963 vs 7,129),行覆盖率几乎相同(72.4% vs 72.2%),任务耗时约快 5.5%。在更难的外部 SWE Atlas 基准上差距依旧:16/44 对比 12/44。
适用场景
- 为未测试模块补测试、在发布关卡前提高覆盖率。
- 审查 PR diff,确保新代码真的被覆盖。
- 金融、医疗、公共部门等受监管或重审计栈,需要可证明有意义的测试。
- 多语言单仓,想统一一套测试惯例。
解决的问题
- 通过但无断言的测试:agent 检查断言与变异,而不只是看 CI 是否变绿。
- 未注册的测试项目:它找到真正的构建与测试命令,让 CI 真的运行你写的东西。
- 模糊提示:它自己定框架、位置与惯例。
定价方案
开源且免费。
| 方案 | 价格 | 说明 |
|---|---|---|
| agent + skills | $0 | 在 dotnet/skills 中 MIT 许可。编码 agent 与模型费用另计。 |
快速开始
- 在 GitHub Copilot CLI 添加插件:
/plugin marketplace add dotnet/skills,再/plugin install dotnet-test@dotnet-agent-skills。 - 重启 CLI,从 agent 列表选择
code-testing-generator。 - 输入「generate unit tests」,审查计划、测试与最终检查。
常见问题
它测试什么?
仅单元测试。集成、端到端、浏览器与性能测试目前不在范围。
免费吗?
免费,MIT 开源。
会改生产代码吗?
不会。它读取生产代码获取上下文,但只写测试文件。
替代方案
- Aider:通用的 CLI 编码 agent,用于提示与编辑。
- Claude Code:终端编码 agent,可搭配自定义 skills。
- codex-cli:OpenAI 的智能体 CLI,同样可用 skills 扩展。
使用技巧
- 把它用在「模糊提示」场景,这是它相比普通 Copilot 提升最大的地方。
- 看重最终检查而非绿色测试数量:断言质量才是真正的收益。
- 若仓库用内部框架,就 fork 官方语言指南,让 agent 匹配你的惯例。
总结
code-testing-generator 是微软对「测试通过却证明不了什么」的回应。通过先研究仓库再逐一校验每条测试,它把复制粘贴式的提示变成可靠的信任循环,而且数字在通用助手最吃力的地方表现最好。在 GitHub Copilot CLI 中试用,或阅读技术文章。
评论
还没有评论。成为第一个评论的人!
相关工具
CLI-Anything
clianything.cc
HKUDS 开源注册表,把 GUI 应用、API 与 SaaS 工具变成智能体可调用的 CLI,适配 OpenClaw、Claude Code、Codex 与 Cursor。
Prime Agent
www.primeintellect.ai
PrimeIntellect 出品的自我改进编程智能体,基于递归语言模型(RLM)。持久 IPython 内核作为唯一工具,/refine 命令让智能体改进自身,还有带边界的自主模式。
T3 Code
t3.codes
开源智能体 Harness 控制面板:通过桌面、Web 与移动应用统一控制 Claude Code、Codex、Cursor、Grok Build 与 OpenCode。
相关洞察
7 款 AI 编程 CLI 用了半年,我悟出一个道理:模型再强,干活也要有监督
Claude Code、Codex、opencode、pi、omp、DeepSeek Harness 各有性格。半年深度使用后我总结出一套分工矩阵:pi 做最省事的 CR、omp 审复杂 PR、DeepSeek Harness 配 V4 Flash 高频低成本审查、Claude Code 与 Qoder 写代码。模型再强,干活也要有监督,而且最好是独立第三方。
Claudesidian:让 Obsidian 变成 AI 驱动的第二大脑
通过 Claudesidian 这个开源项目,将 Obsidian 笔记系统与 Claude Code 完美结合。内置 PARA 方法、自定义命令、自动化工作流,从想法到实现的完整解决方案。
别再把 AI 助手塞进聊天框了:Clawdbot 选错了战场
Clawdbot 很方便,但将它放在 Slack 或 Discord 里操控,是从一开始就错的设计选择。聊天工具不是用来操作任务的,AI 也不是用来聊天的。