一键导入
test-driven-dev
// [project] OPC-Starter 测试驱动开发规范。管理和执行 Playwright E2E 测试、演示模式测试、单元测试的完整工作流。适用于新增功能时补充测试用例、运行认证/注册/演示测试、维护测试规划文档。当用户提到测试、E2E、Playwright、演示、用例、质量、补充测试时使用。
// [project] OPC-Starter 测试驱动开发规范。管理和执行 Playwright E2E 测试、演示模式测试、单元测试的完整工作流。适用于新增功能时补充测试用例、运行认证/注册/演示测试、维护测试规划文档。当用户提到测试、E2E、Playwright、演示、用例、质量、补充测试时使用。
Deploys React/Vite applications to Alibaba Cloud ESA Pages. Use when the user needs to deploy frontend applications, manage deployments, configure custom domains, or troubleshoot deployment issues on ESA (Edge Security Acceleration) platform.
OPC-Starter 智能开发技能。AI 亲和的 React Boilerplate 项目开发规范,支持动态上下文感知、TDD 驱动开发、Agent Studio 扩展。适用于认证系统、组织架构、Agent 工具、数据同步等模块的迭代开发。
代码仓库 AI 亲和度审计工具,支持前端、后端、全栈等各类项目。此技能用于检查给定的代码仓库对 AI Coding 工具的友好程度,生成详细的分析报告和改进建议。当用户需要评估代码仓库是否适合 AI 辅助开发、希望提升仓库的 AI 可操作性、或准备引入 AI Coding 工具前进行仓库评估时,应使用此技能。支持 TypeScript/JavaScript、Go、Java/Kotlin、Python、Rust 等主流技术栈。融合 OpenAI Harness Engineering 方法论,评估 Outer Loop(反馈闭环、评估门禁、机械化不变量)建设。
OPC-Starter 智能开发技能。AI 亲和的 React Boilerplate 项目开发规范,支持动态上下文感知、TDD 驱动开发、Agent Studio 扩展。适用于认证系统、组织架构、Agent 工具、数据同步等模块的迭代开发。
IHS(IDE Harness Score)仓库健康评估技能。用于衡量 AI Coding IDE 驾驭能力下的代码仓技术债变化趋势,输出 IHS.md 评测报告(代码腐化、测试信号、文档对齐、变好/变坏结论)。
Create distinctive, production-grade frontend interfaces with high design quality using Mobile First strategy. Analyzes design systems from screenshots, generates Tailwind CSS + Shadcn UI configurations, and retrofits existing projects. Optimized for Claude Opus 4.5 with structured decision trees and self-verification checkpoints.
| name | test-driven-dev |
| description | [project] OPC-Starter 测试驱动开发规范。管理和执行 Playwright E2E 测试、演示模式测试、单元测试的完整工作流。适用于新增功能时补充测试用例、运行认证/注册/演示测试、维护测试规划文档。当用户提到测试、E2E、Playwright、演示、用例、质量、补充测试时使用。 |
# 单元测试
cd app && npm run test
# E2E 全量
cd app && npm run test:e2e
# 认证专项(有浏览器窗口)
cd app && npm run test:e2e:auth
# 演示模式(打字机效果)
cd app && npm run test:e2e:demo
# UI 调试模式
cd app && npm run test:e2e:ui
# 查看报告
cd app && npm run test:e2e:report
tests/e2e/demo/ 目录,带打字机效果Date.now() 生成唯一邮箱,beforeEach 清理状态tests/TEST_PLAN.mdapp/tests/
├── e2e/
│ ├── auth/
│ │ ├── login.spec.ts # 登录测试 (14 个)
│ │ └── register.spec.ts # 注册测试 (17 个)
│ ├── demo/
│ │ └── demo-auth.spec.ts # 演示测试 (5 个)
│ ├── dashboard.spec.ts # fixme
│ ├── profile.spec.ts # fixme
│ ├── persons.spec.ts # fixme
│ └── settings.spec.ts # fixme
└── support/
├── fixtures/auth.fixture.ts
└── helpers/
├── test-helpers.ts
└── demo-helpers.ts # 打字机/高亮效果
test('[P1] 应该能够访问页面', ...) // 必须
test('[P1] 应该显示主要内容', ...) // 必须
test('[P1] 核心交互测试', ...) // 建议
test('[P2] 导航到其他页面', ...) // 建议
test('[P0] 成功提交', ...) // 必须
test('[P1] 空字段被阻止', ...) // 必须
test('[P1] 无效格式被阻止', ...) // 必须
test('[P1] 显示错误提示', ...) // 建议
// 同步在 demo/ 目录添加演示用例
import { test, expect } from '@playwright/test';
import { fillFormWithEffect, clickWithEffect, highlightElement } from '../../support/helpers/demo-helpers';
test.use({ launchOptions: { slowMo: 50 }, video: 'on' });
test.describe('🎬 演示模式 - [功能名]', () => {
test.beforeEach(async ({ page }) => {
await page.context().clearCookies();
await page.evaluate(() => { try { localStorage.clear(); } catch {} });
});
test('🎬 演示:[场景名]', async ({ page }) => {
await page.goto('/path');
await page.waitForLoadState('networkidle');
await fillFormWithEffect(page, [
{ selector: '#field1', value: '值1' },
{ selector: '#field2', value: '值2' },
]);
await highlightElement(page, 'button[type="submit"]', 500);
await clickWithEffect(page, 'button[type="submit"]', { pause: 1000 });
});
});
| 函数 | 用途 | 关键参数 |
|---|---|---|
typeWithEffect(page, selector, text) | 打字机效果输入 | delay: 40 |
highlightElement(page, selector, duration) | 红色边框高亮 | duration: 500 |
clickWithEffect(page, selector) | 高亮后点击 | pause: 300 |
fillFormWithEffect(page, fields[]) | 表单批量填充 | fields 数组 |
演示速度配置在 tests/support/helpers/demo-helpers.ts → DEMO_CONFIG
// 1. 引入
import { test, expect } from '@playwright/test';
// 2. 测试数据
const TEST_USER = { email: 'test@example.com', password: '888888' };
// 3. 辅助函数
async function clearAuthState(page) { ... }
// 4. 测试套件 - 按优先级分组
test.describe('[P0] 核心流程', () => { ... });
test.describe('[P1] 验证逻辑', () => { ... });
test.describe('[P2] 用户体验', () => { ... });
test.describe('[P3] 边界情况', () => { ... });
Playwright 配置:app/playwright.config.ts
演示速度参数:tests/support/helpers/demo-helpers.ts
测试规划文档:tests/TEST_PLAN.md