SuperAPI AI 工具集

local-service-testing

测试与质量

查看项目

更新于 10-16 03:35

技能介绍

用途:当代码改动涉及数据库、缓存、队列或其他依赖服务的组件时,本技能强制针对真实本地服务进行集成测试,而非只依赖 mock。其核心理念是:本地能跑的服务就不要 mock,mock 会隐藏缺陷;CI 只是验证,不负责发现问题。

主要能力:识别改动所依赖的服务(如 SQL、迁移、模型、实体、仓储对应 postgres;cache、redis、session、queue、pub/sub 对应 redis;worker、job、consumer 对应队列服务);提供 session-start 钩子的服务检测与提示;给出启动与连通性检查方式:docker-compose up -d、docker-compose ps、psql postgresql://localhost:5432/dev -c "SELECT 1"、redis-cli ping;要求运行集成测试,如 pnpm test:integration、pytest tests/integration/、go test -tags=integration ./...;要求在推送前完成 build、lint、typecheck、单元测试与集成测试。

使用方式:先通过 git diff --name-only HEAD~1 判断改动文件,再启动所需服务并验证连通,随后运行集成测试。技能同时要求单元测试(使用 mock,服务于 TDD 循环)与集成测试(使用真实服务)两者并存,均为必需。创建 PR 前,需将规定格式的本地测试证据作为评论发布到所处理的 GitHub issue 中,包含服务状态、验证内容、运行的测试与时间戳;若不存在 docker-compose.yml 或改动不匹配服务模式,则无需该证据。validate-local-testing.sh 的 PreToolUse 钩子会在 PR 创建前检查。

适用场景:数据库模型、迁移、仓储/ORM、SQL 查询、缓存、会话存储、发布订阅、队列 worker 以及依赖全部服务的 API 端点等相关改动。

限制:资料未提供具体价格、平台或效果数据;文中连接字符串与命令为示例,实际值需查看项目的 .env.example 或 docker-compose.yml;所有命令需按原样使用。