SuperAPI AI 工具集

test

测试与质量

查看项目

更新于 10-16 04:18

技能介绍

用途

该技能用于在代码变更后自动验证测试是否通过,或在测试失败时进行诊断与修复。它覆盖从框架识别、运行测试、分析失败到修复并重跑的完整流程。

主要能力

1. 自动检测测试框架

按以下顺序检查测试配置文件并确定运行命令:

文件 框架 运行命令
vitest.config.* 或含 test 的 vite.config.* Vitest npx vitest run
jest.config.* 或 package.json 中的 jest 键 Jest npx jest
phpunit.xml PHPUnit ./vendor/bin/phpunit
pest.php 或 composer.json 中的 Pest Pest ./vendor/bin/pest
pytest.ini / pyproject.toml [tool.pytest] pytest pytest
含 _test.go 文件的 go.mod Go go test ./...
Cargo.toml Rust cargo test
含 rspec 的 Gemfile RSpec bundle exec rspec

同时检查 package.json 脚本中的 test、test:run、test:unit、test:integration。若 CLAUDE.md 指定了测试命令,则改用其中的命令。

2. 运行测试

使用后台方式(run_in_background=true)运行检测到的测试命令,并在可用时启用详细输出标志。

3. 分析结果

若全部通过,报告摘要并停止。若失败,对每个失败项:读取失败测试以理解其期望;读取被测试的源码;将失败分类为:

  • 测试写错——测试期望与预期行为不符(更新测试)
  • 源码有误——代码存在 bug(修复源码)
  • 两者均需更新——行为被有意变更(同时更新两者)
  • 环境问题——缺少依赖、缓存陈旧、配置错误(修复环境)

4. 修复并重跑

对每个失败项:做最小化修复;重跑该特定失败测试以验证;继续处理下一个失败项。所有单项修复完成后,再整体运行一次完整测试套件以捕获回归。

5. 报告

报告格式包含:框架、命令、结果(X 通过、Y 已修复、Z 剩余);已修复项(测试名与问题/修复说明);仍失败项(诊断与无法自动修复的原因)。

使用方式

该技能以自动化流程方式使用,无需手动传入参数。它会自行检测项目中的测试框架与配置,执行测试并根据结果决定后续动作。当 CLAUDE.md 存在并指定测试命令时,以其中的命令为准。

适用场景

  • 代码变更后需要验证测试是否通过
  • 测试失败需要定位原因并修复
  • 需要按项目实际框架自动选择合适的测试命令

限制与规则

  • 未经用户明确同意,不得删除或跳过任何失败测试
  • 优先修复源码而非修改测试(测试定义预期行为)
  • 若修复需要改动超过约 20 行,需先展示拟修改内容并征得同意后再应用
  • 若同一根因导致多个失败,只修复一次根因