refactor: 通用技能按类别拆分为独立目录
skills/ → skills-dev(9), skills-req(10), skills-ops(4), skills-integration(8), skills-biz(4), skills-workflow(7) generate-marketplace.py 改为自动扫描所有 skills-* 目录。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
141
skills-dev/dev-test-plugin/skills/dev-test/SKILL.md
Normal file
141
skills-dev/dev-test-plugin/skills/dev-test/SKILL.md
Normal file
@@ -0,0 +1,141 @@
|
||||
---
|
||||
name: dev-test
|
||||
description: 软件测试技能。用于单元测试、集成测试、E2E测试、测试用例设计。支持 Go、Vue、React、iOS、Android 等多平台测试。
|
||||
---
|
||||
|
||||
# 软件测试 Skill (dev-test)
|
||||
|
||||
## 子文件索引
|
||||
|
||||
| 文件 | 内容 |
|
||||
|------|------|
|
||||
| `go-testing.md` | Go 后端测试 (testify + test DB + httptest)。**biz 层禁止 mock,必须用真实 PostgreSQL test DB** |
|
||||
| `frontend-testing.md` | Vue (Vitest) + React (Jest) 前端测试 |
|
||||
| `ios-testing.md` | iOS 测试 (XCTest + Swift Concurrency) |
|
||||
| `android-testing.md` | Android 测试 (JUnit + Espresso + Compose) |
|
||||
| `e2e-testing.md` | E2E Playwright + Coolbuy PaaS 集成测试 |
|
||||
|
||||
---
|
||||
|
||||
## 测试金字塔
|
||||
|
||||
```
|
||||
/\
|
||||
/ \ E2E (少量)
|
||||
/----\
|
||||
/ \ 集成测试 (适量)
|
||||
/--------\
|
||||
/ \ 单元测试 (大量)
|
||||
/------------\
|
||||
```
|
||||
|
||||
| 类型 | 范围 | 速度 | 数量 |
|
||||
|------|------|------|------|
|
||||
| 单元测试 | 函数/方法 | 快 | 多 |
|
||||
| 集成测试 | 模块交互 | 中 | 适量 |
|
||||
| E2E 测试 | 完整流程 | 慢 | 少 |
|
||||
|
||||
---
|
||||
|
||||
## 测试命令速查
|
||||
|
||||
| 平台 | 命令 | 详见 |
|
||||
|------|------|------|
|
||||
| Go | `make test` / `go test ./...` | `go-testing.md` |
|
||||
| Vue | `npm run test` | `frontend-testing.md` |
|
||||
| React | `npm test` | `frontend-testing.md` |
|
||||
| iOS | `xcodebuild test` | `ios-testing.md` |
|
||||
| Android | `./gradlew test` | `android-testing.md` |
|
||||
| E2E (通用) | `npm run test:e2e` | `e2e-testing.md` |
|
||||
| E2E (Coolbuy PaaS) | `make e2e` | `e2e-testing.md` |
|
||||
|
||||
---
|
||||
|
||||
## Chrome DevTools MCP (AI 浏览器调试)
|
||||
|
||||
> Google 官方 MCP 服务器,让 AI 助手直接控制和检查 Chrome 浏览器。
|
||||
|
||||
```bash
|
||||
claude mcp add chrome-devtools npx chrome-devtools-mcp@latest
|
||||
```
|
||||
|
||||
| 分类 | 工具 | 说明 |
|
||||
|------|------|------|
|
||||
| **输入** | `click` / `fill` / `fill_form` / `hover` / `upload_file` | 页面交互 |
|
||||
| **导航** | `navigate_page` / `new_page` / `list_pages` / `wait_for` | 页面导航 |
|
||||
| **调试** | `evaluate_script` / `list_console_messages` / `take_screenshot` | 调试工具 |
|
||||
| **网络** | `list_network_requests` / `get_network_request` | 网络分析 |
|
||||
| **性能** | `performance_start_trace` / `performance_stop_trace` | 性能追踪 |
|
||||
| **模拟** | `emulate_device` / `throttle_network` / `throttle_cpu` | 环境模拟 |
|
||||
|
||||
---
|
||||
|
||||
## 测试用例设计
|
||||
|
||||
### 等价类划分
|
||||
|
||||
| 输入 | 有效类 | 无效类 |
|
||||
|------|--------|--------|
|
||||
| 用户名 | 3-64字符 | <3, >64 |
|
||||
| 年龄 | 0-150 | <0, >150 |
|
||||
| 邮箱 | 有效格式 | 无效格式 |
|
||||
|
||||
### 边界值
|
||||
|
||||
```
|
||||
范围 [1, 100]:
|
||||
测试点: 0, 1, 2, 99, 100, 101
|
||||
```
|
||||
|
||||
### 测试用例模板
|
||||
|
||||
```markdown
|
||||
## TC-001: 用户登录成功
|
||||
|
||||
**前置条件**: 用户已注册
|
||||
**步骤**:
|
||||
1. 输入有效用户名
|
||||
2. 输入有效密码
|
||||
3. 点击登录
|
||||
|
||||
**预期**: 跳转到首页
|
||||
**优先级**: P0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 覆盖率目标
|
||||
|
||||
| 类型 | 目标 |
|
||||
|------|------|
|
||||
| 行覆盖 | >80% |
|
||||
| 分支覆盖 | >70% |
|
||||
| 函数覆盖 | >90% |
|
||||
|
||||
---
|
||||
|
||||
## 与 ai-proj 集成
|
||||
|
||||
```bash
|
||||
# 创建测试任务
|
||||
ai-proj task create --title "[模块] 单元测试"
|
||||
|
||||
# 记录测试结果
|
||||
ai-proj task append-doc --id <taskId> --content "# 测试报告
|
||||
- 覆盖率: 85%
|
||||
- 通过: 42
|
||||
- 失败: 0"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **测试金字塔** - 多单元测试,少 E2E
|
||||
2. **测试隔离** - 每个测试独立
|
||||
3. **命名清晰** - 描述预期行为
|
||||
4. **快速反馈** - 测试要快
|
||||
5. **持续集成** - 每次提交运行
|
||||
6. **Biz 层禁止 Mock** - biz/service 层必须使用真实 PostgreSQL test DB + 真实 store,mock 等于没测
|
||||
7. **Mock 仅限 Handler 层** - handler 层可以 mock biz 接口 + httptest
|
||||
7. **李宁测试用例** - Excel 导出见 `coolbuy-legacy` 技能的 `test-cases-excel.md`
|
||||
Reference in New Issue
Block a user