Supercov

用可验证的质量评分和覆盖率缺口指导编码智能体逐步改进代码。

Star 数
★ 159
最近更新
今天
License
MIT
主语言
Rust

30 秒速览

运行形态
命令行工具
可在哪里用
通用 · 跨平台Codex · Claude Code
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Node.js 22 或更高版本,用于 npx用于质量评分的 TypeSafe AI API 密钥受支持的语言运行时和测试运行器Shell / 命令行网络访问本地文件系统
典型场景
已有稳定测试命令的开发团队,希望让 Codex 或 Claude Code 根据实际覆盖证据每次补充一个有价值的测试。
不适合
  • 希望工具自己托管、调度或替代编码代理的团队
  • 需要 Zig、PHP 或 C 支持的项目(目前仅列为即将推出)

这个 Agent 能做什么,适合哪些场景?

Supercov 是一个面向编码智能体的本地 CLI,用于评估代码质量、运行项目已有的测试命令并生成可操作的覆盖率缺口。质量功能通过 Jev 检查各源文件,并输出由具体问题支撑的评分;该功能需要 TypeSafe AI API 密钥,按读取的源码量收费。覆盖率功能在隔离工作区中执行原有测试套件,不改写源码、测试、依赖、运行器配置或正常构建输出,并把证据保存在 .supercov/ 下。它支持 JavaScript、TypeScript、Rust、Python、Ruby、Go、Java 和 Kotlin,可报告行、语句、函数、分支及 MC/DC 等覆盖义务。智能体可通过 gaps 选择目标、编写聚焦测试,再用 diff 证明覆盖率增益;断言映射还可记录断言具体检查了什么。Supercov 不托管或调度智能体,适合已有终端操作能力和完整测试命令的项目。

质量流程中,npx supercov quality 自动发现源码,把文件交给 Jev 回答一组是非问题,并汇总为可核查的文件级和项目级评分;quality gaps、quality file 和 quality patch 分别用于查看问题、检查单个文件和审查变更。覆盖率流程中,supercov -- <test-command> 在隔离工作区运行项目原有测试命令,预先根据源码结构确定覆盖义务,并收集行、语句、函数、分支、MC/DC、可选链、默认值、逻辑赋值及特定控制流路径的执行证据。runs latest gaps 把未覆盖路径压缩成小型、可分页的目标,diff <previous-run-id> latest 对比两次完整测试运行。每次正常运行还会创建断言映射;智能体可读取断言与执行源码、填写 assertions.json,再用 assertions validate 和 assertions check --require-mappings 验证。运行证据存放在 .supercov/runs/<run-id>/,隔离构建缓存位于 .supercov/workspaces/。

  1. 已有稳定测试命令的开发团队,希望让 Codex 或 Claude Code 根据实际覆盖证据每次补充一个有价值的测试。
  2. 维护安全关键或复杂条件逻辑的工程师,需要用 MC/DC 独立性见证定位普通行覆盖率无法揭示的遗漏路径。
  3. 代码库负责人希望用 Jev 对大量文件进行一致的质量筛查,并从最弱文件和具体问题类型开始重构。
  4. 自动化软件工厂希望为每轮智能体任务提供边界明确的测试目标,并保存可复查的运行与差异证据。
  5. 测试负责人需要追踪 Jest、Playwright、Vitest、Rust libtest、RSpec 等受支持运行器中的精确单测试归因或聚合结构覆盖。
  6. 团队希望为断言建立语义映射,区分代码被执行与结果确实被断言检查这两件事。

如何安装或部署这个 Agent?

使用 npm 的最短路径无需预先安装包,但要求 Node.js 22 或更高版本:npx supercov -- npm test。也可按项目语言安装或运行同一版本的原生二进制:uvx --from supercov-cli supercov -- pytest、gem install supercov && supercov -- bundle exec rspec、cargo binstall supercov && supercov -- cargo test、go run github.com/supercorp-ai/supercov/cmd/supercov@latest -- go test ./...,或 brew install supercorp-ai/tap/supercov。覆盖率测量不需要账户或配置文件。质量评分需要先取得 TypeSafe AI API 密钥并执行 export TYPESAFE_API_KEY=...;npx 等包工具在本地尚无缓存时可能访问软件包注册表。

如何使用这个 Agent?

先运行项目信任的完整测试套件,例如 npx supercov -- npm test。随后执行 npx supercov runs latest 查看摘要,并用 npx supercov runs latest gaps --limit 10 选择一个有用的未覆盖目标。让编码智能体只修改测试并添加一个聚焦用例,然后再次运行相同的完整套件,最后执行 npx supercov diff <previous-run-id> latest 验证改进。质量检查可先设置 TYPESAFE_API_KEY,再运行 npx supercov quality;用 npx supercov quality gaps 查看触发的问题,或用 npx supercov quality patch 审查未提交工作或当前分支。若要补充断言语义,先运行 npx supercov runs latest assertions --json,固定返回的运行 ID,检查断言和源码,编辑 assertions.json,再依次执行 assertions validate --json 与 assertions check --require-mappings --json。

这个 Agent 有哪些优点和局限?

优点
  • 直接复用项目已有的完整测试命令,无需添加 import、自定义 reporter、配置文件或托管服务。
  • 覆盖率分母在运行前由源码结构确定,新增或删除测试不会悄悄改变 100% 的含义;证据缺失和范围歧义会保持可见。
  • 除行和分支外,还能追踪 MC/DC、可选链、默认值、逻辑赋值及零次迭代等细粒度路径。
  • 通过 gaps 和 diff 为编码智能体提供小型目标及前后对比证据,适合重复迭代。
  • 跨八种已支持语言提供同一原生 CLI,并覆盖 Linux、macOS 和 Windows 的 arm64、x64 架构。
  • 覆盖数据和工作区保存在本地 .supercov/;覆盖运行期间 CLI 不联系 Supercov 服务,也不改写项目文件。
局限
  • 质量评分依赖 TypeSafe AI 和 Jev,需要 API 密钥,并按读取的源码量产生费用。
  • npx 路径要求 Node.js 22 或更高版本;其他语言也有明确最低版本,例如 CPython 3.12、Go 1.22、JDK 17 和 Ruby 3.3。
  • 并非所有测试运行器都有精确的单测试归因;AVA 和 Mocha 仅提供聚合结构覆盖。
  • 断言映射中的语义判断需要智能体检查断言和源码、填写映射并确认 token,不是完全自动完成。
  • Zig、PHP 和 C 仍标为即将支持,当前不能作为已支持语言采用。
  • 工具不会托管、调度或替代编码智能体;持续运行仍需用户自己的智能体或软件工厂负责。

这个 Agent 与同类方案有什么区别?

与需要智能体加载大型 HTML 报告的传统覆盖率流程相比,Supercov 用可分页的 gaps 查询返回较小的具体测试目标,并用 diff 验证增益。与托管式覆盖服务相比,其覆盖运行保留在本地 .supercov/ 目录且不联系 Supercov 服务;但质量评分是另一条路径,依赖 TypeSafe AI 的 Jev API。它也不是测试运行器或智能体平台,而是包裹现有测试命令、生成质量与覆盖证据的 CLI。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Supercov 当前 75 · 存在缺口 命令行工具免费 + 模型费 ★ 159 今天 Rust Codex · Claude Code
OpenCode Swarm 74 · 存在缺口 Agent 插件 / 技能免费 + 模型费 ★ 518 1 天前 TypeScript —
Carbon Code 64 · 存在缺口 命令行工具免费 + 模型费 ★ 199 2 个月前 TypeScript OpenAI API
Keploy API 测试与 Mock 生成平台 49 · 缺口较多 命令行工具免费版 + 付费版 ★ 19k 今天 Go —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
为什么不是更高等级:信任与安全维度为 16/29,未达「表现良好」所需的 18/29,按「风险不做平均」下调评级。
75/ 100 五分制 3.8 / 5
本评测基于 2026年9月20日 的源码;此后该项目发布了 28 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 16/29
可靠稳定 9/14
适用触发 18/18
规范维护 16/18
有效结果 10/13
证据核验 6/8
查看各维度的扣分理由
信任安全16 / 29 · 2.8/5

覆盖运行被描述为在隔离工作区内进行、默认不改写项目文件,CI 权限也仅为 contents: read;但工具会执行用户指定的测试命令,质量评分还会把源码内容发送给外部 Jev/TypeSafe AI,因而最小权限未获满分。README 清楚区分本地覆盖、包管理器联网和付费质量服务,但没有说明上传字段、保存期限、删除机制或密钥保护措施。清理提供 dry-run 和保留最近运行的选项,具有一定恢复保护,却没有针对代理所写测试的内建回滚或逐次确认。依赖中既有精确锁定也有宽松范围,工作流使用版本标签而非提交摘要,且材料未提供锁文件、漏洞扫描或供应链政策,因此依赖安全仅有薄弱证据。仓库、组织、问题入口和贡献者版权可识别,但发布者身份仍未知,维护归属并未完全落实到具体责任人。

可靠稳定9 / 14 · 3.2/5

README、各生态清单、CI 工作流和示例对 1.0.1、运行方式及核心测试循环大体一致,并展示了广泛的静态测试脚本;但 PyPI 元数据标为 Pre-Alpha,而文档又广泛宣称多平台、多语言均已可用,成熟度表述存在张力。依赖和环境要求列得具体,平台二进制也按版本配套,但外部 API、注册表、测试框架及多语言工具链仍是可用性依赖,材料没有降级策略。文档说明失败测试、不完整证据和歧义范围会停止循环,但未给出实际错误消息实现或错误输出样例,因此失败消息只评为充分但不彻底。

适用触发18 / 18 · 5.0/5

材料明确面向交互式编码代理、夜间剩余令牌循环和自动化软件工厂,并提供质量、覆盖、断言映射等不同场景。能力边界写得很清楚:Supercov 提供信号与证据,不托管、不调度也不替代代理;质量评分与覆盖运行的联网和账户需求也有区分。可复制提示词给出了只改测试、停止条件、目标选择和复跑验证等精确触发规则。语言、运行器、操作系统、架构、最低版本、安装渠道和归因边界均有详尽矩阵,因此这些标准可获满分。

规范维护16 / 18 · 4.4/5

README 的结构、命令渐进层级、文档索引和支持矩阵组织良好;安装方式覆盖 npm、PyPI、RubyGems、Cargo、Go、Homebrew 和直接发布包,并注明前置版本。名称、模块路径和 1.0.1 版本在 Cargo、npm 及平台包之间稳定一致。示例丰富且有三平台教程工作流,但所给材料没有真正的 FAQ 内容,外链故障排查文档也未展开。限制条件、归因差异、完整性阻断项和即将支持的语言均有明确说明。MIT 许可证正文与所有清单一致。版本号和升级脚本存在,但没有提供变更日志、发布历史或兼容性迁移说明。问题跟踪地址和 Supercorp 支持声明提供了维护路径,不过版权仅写“contributors”,未明确具体维护者或响应承诺。

有效结果10 / 13 · 3.8/5

文本输出短小、可分页并支持 JSON,能够定位文件、行、决策和运行差异;示例也展示了代理可直接消费的缺口和证明结果,因此输出可用性证据充分。相对传统覆盖报告的边际价值体现在结构化缺口、MC/DC、逐测试归因、断言映射及不可变运行记录,但这些广泛收益主要由项目自身陈述,所给示例只验证了一个很小的会话分支场景。成本披露包括质量评分约每 MB 一美分、内容缓存以及覆盖免费本地运行,但没有源材料内的基准数据、典型运行开销或存储增长数据,所以边际价值和成本收益均未获满分。

证据核验6 / 8 · 3.8/5

质量结果被描述为可回到具体文件和问题,覆盖结果可查询运行、源码位置和运行间差异;工作流、测试脚本及教程前后测试文件也为部分主张提供交叉支持。但多语言、多平台、精确归因和“同一二进制”发布等大范围主张没有在所给文件中逐项获得实现代码、构建产物摘要或测试结果佐证,CI 配置本身也不等同于测试通过。事实与推断的分离较好:文档明确标出 agent-assessed 断言分数、aggregate 与 exact attribution 的边界、外部质量服务和本地覆盖之间的差异,以及证据不完整时的停止条件。

风险与缓解建议
  • 质量评分会把源码交给 Jev/TypeSafe AI;在处理专有或敏感代码前,应先核实上传范围、保存期限、数据使用条款和删除机制。
  • 该工具会执行传入的完整测试命令,并让编码代理修改测试;应在受限工作区中运行,审查命令和补丁,并保留版本控制恢复点。
  • 安装涉及多个注册表和平台二进制,但材料未展示锁文件、产物校验摘要、依赖漏洞扫描或固定到提交的 CI 动作;高保障环境应补做供应链审查。
  • 多平台和多语言支持声明只能从配置和文档静态观察,不能视为本次评估已执行或独立复现。
  • PyPI 的 Pre-Alpha 分类与 1.0.1 及广泛“Available”声明并存,采用前应验证目标语言、运行器和平台组合。
证据充分度:低 评估于 2026年9月20日 审查版本 0f1a6a336413 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v4.24.0 Release 4.24.0
    发布说明摘录
    Added - Playwright tests that run in a container are measured, started with docker exec or docker compose exec in a container the project is mounted into (.:/workspace). The command is given Supercov's settings, with each path moved to where the container sees the project, and each test is credited with what it ran. A container the project is mounted into is measured whatever its image, and the project's node_modules is mounted into it read-only. See [supported suites](https://github.com/supercorp-ai/supercov/blob/v4.24.0/docs/supported-suites.md#a-server-in-a-container). …
    在 GitHub 查看 ↗
  2. v4.23.0 Release 4.23.0
    发布说明摘录
    Added - Apache Ant builds, Ivy-resolved ones included, are measured. Supercov reads build.xml and what it imports, includes through entities or calls through <ant> and <subant>, and finds the tests from each <batchtest> and the product code from what each <javac> compiles. Tests run by <junit> are attributed one by one through a result formatter Supercov adds next to the project's own, and tests run by <junitlauncher> and <testng> through the JUnit Platform and TestNG listeners. A test that a suite runs again is named within that suite, and a test Ant stops at its timeout …
    在 GitHub 查看 ↗
  3. v4.22.0 Release 4.22.0
    发布说明摘录
    Added - Native bun:test coverage attribution for individual test bodies, including async and concurrent tests, parameterized rows, and done callbacks. Lifecycle hooks are recorded separately as setup. Existing Bun options and configured preloads are preserved. Callback outcomes and native Bun verdict limitations are described in [supported suites](https://github.com/supercorp-ai/supercov/blob/v4.22.0/docs/supported-suites.md#bun). Fixed …
    在 GitHub 查看 ↗

常见问题

覆盖率功能需要账户或付费吗?
不需要。覆盖率功能是本地、免费、开源且采用 MIT 许可证;不要求账户、配置文件或托管服务。包管理器首次下载二进制时仍可能访问对应注册表。
质量评分如何收费?
质量评分需要 TypeSafe AI API 密钥。Jev 按读取内容收费,源码每兆字节约一美分;结果按文件内容缓存,后续运行通常只需为变更内容付费。
Supercov 会修改项目吗?
覆盖运行不会改写源码、测试、import、reporter 列表、运行器配置、依赖树或正常构建输出。Java/Kotlin 测量所需的构建调整发生在隔离工作区副本中。
测试失败或覆盖证据不完整时怎么办?
推荐的智能体循环应停止继续改动;失败测试、证据缺失、未插桩代码和范围歧义会保留为可见问题,而不会被舍入隐藏。
所有运行器都能显示每个测试覆盖了什么吗?
不能。Playwright、Vitest、Jest、node:test、Rust、RSpec 等列出的适配器支持精确归因;AVA 和 Mocha 只报告聚合结构覆盖。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents