SuperAPI AI 工具集

ensure-tests

测试与质量

查看项目

更新于 10-15 21:47

技能介绍

ensure-tests 用于确保当前项目已具备合适的测试套件:检测技术栈与测试框架、必要时补齐脚手架、生成单元测试(仅逻辑代码,必需)、并可选生成与运行 E2E 测试。

用途与流程:先扫描项目根目录判断语言与框架,如 package.json(JS/TS,并按 vite/react/vue/next 等进一步识别)、go.mod、requirements.txt/pyproject.toml、pom.xml/build.gradle、Cargo.toml、*.csproj 等;再检测已有测试框架(Jest、Vitest、Pytest、go test、JUnit、cargo test 等)。仅在未检测到框架时执行脚手架安装,例如 npm install -D vitest @vitest/ui、npm install -D jest ts-jest @types/jest、pip install pytest pytest-cov,并创建最小配置与 test 脚本。

单元测试范围为逻辑代码:services、utils、helpers、lib、core、models、store、api,纯逻辑 hooks、工具函数、状态管理逻辑与数据处理/校验/转换函数;排除 components、views、pages 等 UI 层及 .tsx/.vue/.svelte 渲染文件、Storybook、样式文件等。优先覆盖工作流变更的逻辑文件,独立调用时全局扫描并优先无测试的逻辑文件。生成规则为每个逻辑文件对应一个测试文件,已有则追加不覆盖,每个函数至少覆盖正常路径、边界值与错误路径。

运行单元测试为必需且阻塞:Node 项目需先对齐项目声明的 Node 版本(调用 node-version-discipline,探测 .nvmrc/.node-version/.tool-versions/volta/engines.node/CI 配置,未声明则询问用户),命令如 npm test -- --passWithNoTests、npx vitest run、pytest --tb=short、go test ./...、cargo test、mvn test、./gradlew test。失败时输出失败列表、自动修复最多两轮,仍失败则停止等待用户介入。

E2E 为可选:检测 playwright/cypress/nightwatch/wdio 配置,有则生成并运行(npx playwright test、npx cypress run),失败只输出截图路径与原因,不阻塞主流程;未检测到则跳过。工作流调用需声明 mode=advisory(非阻塞)或 mode=mandatory(拒绝必需脚手架或单元测试失败会阻塞退出),调用前须先读 SKILL.md。

限制:不生成 UI 层测试,不覆盖已有测试文件,E2E 非硬门槛;其他收费、价格与平台支持等信息暂未提供。