用途:确保当前项目具备可用的测试套件。流程为检测技术栈与测试框架、必要时搭建脚手架、为逻辑代码生成并运行单元测试,并可选生成与运行 E2E 测试。
主要能力:按项目根文件识别语言与框架(package.json、go.mod、requirements.txt/pyproject.toml/setup.py、pom.xml/build.gradle、Cargo.toml、.csproj/.sln);识别已有测试框架(Jest、Vitest、Pytest、Go 内置、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、状态管理逻辑、数据处理/格式化/校验/转换函数);排除 UI 层(components、views、pages、layouts、screens、JSX/template 文件、Storybook、mocks/fixtures、样式文件)。每个逻辑文件对应一个测试文件,已存在则追加缺失用例,不覆盖;每个函数至少覆盖正常路径、边界值、错误路径三类用例,使用框架原生断言。
运行与阻塞:Node/JS/TS 项目运行前需对齐项目声明的 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。单元测试失败时输出失败列表,最多自动修复 2 轮,仍失败则停止等待用户介入。
模式与边界:工作流调用须声明 mode=advisory(非阻塞,仅报告提醒)或 mode=mandatory(拒绝必要脚手架或单元测试失败会阻塞退出);独立调用走完整流程。该技能为事后检测与补全,不负责测试先行顺序,完成它不等于满足 test-first-discipline。
E2E:检测 Playwright、Cypress、Nightwatch、WebdriverIO 配置,存在则生成并运行(npx playwright test、npx cypress run),失败仅输出截图路径与原因,不阻塞主流程;未检测到则静默跳过。
限制:资料未提供具体收费、价格、平台支持范围与效果数据。