# /designfast:test-prototype Command

## Description
使用Playwright MCP为生成的原型创建和执行自动化测试，验证功能、可访问性和响应式设计。

## Syntax
```
/designfast:test-prototype --prototype=<path> [options]
```

## Parameters

### Required
- `--prototype=<path>`: 原型HTML文件路径或项目ID

### Optional
- `--project-id=<id>`: 项目ID（如果未从原型路径提取）
- `--test-types=<types>`: 测试类型（逗号分隔：accessibility,functionality,responsive,performance，默认：all）
- `--browsers=<browsers>`: 浏览器列表（逗号分隔：chromium,firefox,webkit，默认：all）
- `--output=<path>`: 测试报告输出目录（默认：workspace/reports/tests/{project-id}/）
- `--parallel=<boolean>`: 是否并行执行测试（默认：true）
- `--headless=<boolean>`: 是否无头模式运行（默认：true）
- `--timeout=<ms>`: 测试超时时间（默认：30000ms）

## Workflow

### Stage 1: Input Validation
1. 检查原型文件是否存在
2. 验证原型格式和结构
3. 提取项目ID和原型数据

### Stage 2: Test Scenario Creation
1. 调用test-manager.ps1创建测试场景
2. 配置测试参数和浏览器设置
3. 生成测试用例列表

```powershell
# 创建测试场景
$testScenario = & "$PSScriptRoot\..\scripts\test-manager.ps1" `
    -Action create `
    -ProjectId $ProjectId `
    -PrototypeId $PrototypeId `
    -Name "Prototype Test Suite" `
    -Type "functionality"
```

### Stage 3: Playwright Test Generation
1. 调用playwright-integrator代理
2. 生成Playwright测试脚本
3. 配置测试环境和断言

```powershell
# 生成测试脚本
$testScripts = & "$PSScriptRoot\..\scripts\playwright-manager.ps1" `
    -Action generate `
    -TestId $TestId `
    -PrototypePath $PrototypePath
```

### Stage 4: Test Execution
1. 初始化Playwright MCP连接
2. 执行测试用例
3. 收集测试结果和截图

```powershell
# 执行测试
$results = & "$PSScriptRoot\..\scripts\playwright-manager.ps1" `
    -Action execute `
    -TestId $TestId
```

### Stage 5: Result Analysis
1. 分析测试结果
2. 生成覆盖率报告
3. 识别失败的测试用例

### Stage 6: Report Generation
1. 创建HTML测试报告
2. 保存截图和视频
3. 生成性能指标

## Success Criteria

✅ 测试执行成功：
- 所有测试用例运行完成
- 测试执行时间 < 30秒
- 无运行时错误

✅ 测试覆盖完整：
- 功能测试：所有交互元素
- 可访问性测试：WCAG AA合规
- 响应式测试：所有断点
- 性能测试：加载时间和资源使用

✅ 报告质量：
- HTML报告包含详细结果
- 失败截图和错误日志
- 性能指标和建议

✅ 集成验证：
- Playwright MCP正常通信
- 测试结果正确保存
- 工作空间状态更新

## Example Usage

### Basic Prototype Testing
```bash
/designfast:test-prototype --prototype=workspace/prototypes/project-123/index.html
```

### Specific Test Types
```bash
/designfast:test-prototype --prototype=project-123 --test-types=accessibility,responsive
```

### Custom Configuration
```bash
/designfast:test-prototype --prototype=project-123 --browsers=chromium,firefox --timeout=45000
```

## Error Handling

### Prototype Not Found
```
错误：原型文件不存在
建议：检查原型路径或使用项目ID
```

### Test Execution Failed
```
错误：测试执行失败
原因：Playwright MCP连接错误
建议：检查MCP服务器状态
```

### Timeout Exceeded
```
错误：测试执行超时
建议：增加超时时间或减少测试范围
```

## Dependencies
- Playwright MCP服务器运行中
- 原型文件存在且有效
- 测试管理器脚本可用
- 报告目录可写

## Output Files
- `workspace/reports/tests/{project-id}/report.html` - HTML测试报告
- `workspace/reports/tests/{project-id}/screenshots/` - 测试截图
- `workspace/reports/tests/{project-id}/videos/` - 测试视频（失败时）
- `workspace/tests/{test-id}.json` - 测试场景配置