名称: 项目测试 描述: “为{项目}定制的测试模式和固件。涵盖端到端测试、集成测试和专项测试需求。” 生成者: ai-dev-kit:推荐技能
<!-- 由 ai-dev-kit:recommend-skills 于 {日期} 生成 --> <!-- 如果不再需要,可以安全删除此技能 -->
{项目} 测试模式
本项目的定制测试模式、固件和策略。
变量
| 变量 | 默认值 | 描述 |
|---|---|---|
| COVERAGE_TARGET | 80 | 最低覆盖率百分比 |
| E2E_TIMEOUT | 30000 | 端到端测试超时时间(毫秒) |
| PARALLEL_TESTS | true | 尽可能并行运行测试 |
使用说明
- 确定所需的测试类型(单元/集成/端到端)
- 使用相应的固件和模式
- 遵循项目命名约定
- 确保适当的清理工作
危险信号 - 立即停止并重新考虑
如果您即将:
- 编写没有适当隔离的测试
- 在固件中跳过清理步骤
- 硬编码测试数据而不是使用固件
- 编写不稳定的测试(依赖时间、依赖顺序)
立即停止 -> 使用正确的固件 -> 确保隔离 -> 然后再编写测试
测试类别
单元测试
位置:tests/unit/
模式:
- 隔离测试单个函数/方法
- 模拟外部依赖
- 快速执行(每个 < 100 毫秒)
集成测试
位置:tests/integration/
模式:
- 测试组件交互
- 使用测试数据库/固件
- 可能包含外部依赖
端到端测试
位置:tests/e2e/ 或 playwright/
模式:
- 测试完整的用户工作流程
- 使用浏览器自动化
- 允许较长的执行时间
固件
数据库固件
位置:tests/fixtures/
用法:
# Python 示例
from tests.fixtures import sample_user, sample_order
def test_order_creation(sample_user, sample_order):
# 测试使用预配置的固件
pass
模拟服务
位置:tests/mocks/
可用的模拟:
- [待办事项:列出项目特定的模拟]
命名约定
| 测试类型 | 文件模式 | 函数模式 |
|---|---|---|
| 单元 | test_*.py |
test_<函数名>_<场景> |
| 集成 | test_*_integration.py |
test_<组件>_<操作> |
| 端到端 | *.spec.ts |
test('<功能> - <场景>') |
覆盖率要求
| 组件 | 最低覆盖率 |
|---|---|
| 核心逻辑 | 90% |
| API 路由 | 80% |
| 工具函数 | 70% |
CI 集成
CI 中运行的测试:
- PR 时:单元 + 集成
- 合并时:全部,包括端到端
- 夜间:完整回归测试套件
自定义
编辑此文件以添加:
- 新的固件定义
- 额外的模拟服务
- 自定义测试模式
- 覆盖率例外情况