* [misc] Remove commands that require development using git branches.
This commit is contained in:
@@ -30,42 +30,17 @@
|
||||
---
|
||||
**🚨🚨🚨 AI大模型必读警告 🚨🚨🚨**
|
||||
|
||||
**第一步:必须先切换到 feature/unittest/ai 分支!**
|
||||
**第二步:每个测试用例必须包含至少5个测试步骤(r()...e()语句)!**
|
||||
**第三步:必须使用 test/runtime/ztf 运行测试验证!**
|
||||
**第四步:必须按照指定格式提交代码!**
|
||||
**第一步:每个测试用例必须包含至少5个测试步骤(r()...e()语句)!**
|
||||
**第二步:必须按照指定格式提交代码!必须使用 test/runtime/ztf 运行测试验证!**
|
||||
**第三步:必须先使用 php 命令验证脚本没有错误再使用 test/runtime/ztf 验证测试是否通过**
|
||||
|
||||
**⛔ 绝对禁止的行为:**
|
||||
- 在开发分支上直接编写测试代码
|
||||
- 测试步骤少于5个
|
||||
- 不遵循提交信息格式
|
||||
- 代码包含行尾空格(会导致提交失败)
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 重要:分支开发流程(必须执行)
|
||||
|
||||
**任何单元测试脚本的开发都必须严格按照以下分支流程进行:**
|
||||
|
||||
### 第一步:切换到测试分支(必须)
|
||||
1. **测试分支名**:`feature/unittest/ai`
|
||||
2. **检查当前分支**:确认当前处于测试分支
|
||||
3. **切换到测试分支**:如果当前没有处于测试分支,立即切换到测试分支进行开发
|
||||
|
||||
### 分支操作命令示例:
|
||||
```bash
|
||||
# 检查当前分支
|
||||
git branch
|
||||
|
||||
# 切换到测试分支
|
||||
git switch feature/unittest/ai
|
||||
|
||||
# 确认已切换到测试分支
|
||||
git branch
|
||||
```
|
||||
|
||||
**🚨 警告:如果不切换到测试分支,将违反ZenTao开发规范,必须立即停止操作并切换到正确的分支!**
|
||||
|
||||
## 🔍 核心概念说明
|
||||
|
||||
### 🔑 关键概念:测试用例 vs 测试步骤
|
||||
@@ -85,7 +60,7 @@ git branch
|
||||
**示例说明:**
|
||||
```php
|
||||
// 这是一个测试用例:getUserById.php
|
||||
r($userTest->getByIdTest(1)) && p('account') && e('admin'); // 测试步骤1:正常用户查询
|
||||
r($userTest->getByIdTest(1)) && p('account') && e('admin'); // 测试步骤1:正常用户查询
|
||||
r($userTest->getByIdTest(999)) && p() && e(false); // 测试步骤2:不存在用户查询
|
||||
r($userTest->getByIdTest(0)) && p() && e(false); // 测试步骤3:无效ID查询
|
||||
r($userTest->getByIdTest(-1)) && p() && e(false); // 测试步骤4:负数ID查询
|
||||
@@ -398,42 +373,13 @@ fields:
|
||||
|
||||
## 单元测试开发完整流程(必须按顺序执行)
|
||||
|
||||
### 🔴 步骤1:切换到测试分支(AI大模型必须首先执行)
|
||||
|
||||
**⚠️ AI大模型执行指令:在生成任何代码之前,必须先执行以下分支命令**
|
||||
|
||||
#### 1.1 检查当前分支
|
||||
```bash
|
||||
# 执行此命令查看当前分支
|
||||
git branch
|
||||
git status
|
||||
```
|
||||
|
||||
#### 1.2 切换到指定测试分支
|
||||
```bash
|
||||
# 必须切换到这个分支,分支名固定不变
|
||||
git switch feature/unittest/ai
|
||||
```
|
||||
|
||||
#### 1.3 验证切换成功
|
||||
```bash
|
||||
# 确认当前分支标记为 * feature/unittest/ai
|
||||
git branch
|
||||
```
|
||||
|
||||
**🚨 AI执行检查点:**
|
||||
- [ ] 已执行 `git branch` 命令
|
||||
- [ ] 已执行 `git switch feature/unittest/ai` 命令
|
||||
- [ ] 已确认当前在 feature/unittest/ai 分支
|
||||
- [ ] 如果分支不存在,需要先创建:`git checkout -b feature/unittest/ai`
|
||||
|
||||
### 步骤2:分析待测方法
|
||||
### 步骤1:分析待测方法
|
||||
1. 确定方法所属模块和层次(Model/TAO/ZEN)
|
||||
2. 分析方法参数类型和返回值
|
||||
3. 理解业务逻辑和数据依赖关系
|
||||
4. 识别可能的异常情况
|
||||
|
||||
### 步骤3:设计测试用例和测试步骤
|
||||
### 步骤2:设计测试用例和测试步骤
|
||||
1. **设计测试用例**:每个测试脚本对应一个测试用例,用于测试单个方法
|
||||
2. **设计测试步骤**:在测试用例中设计多个测试步骤来验证不同场景
|
||||
- 正常流程测试步骤
|
||||
@@ -443,13 +389,13 @@ git branch
|
||||
4. 确定每个步骤的断言点和期望结果
|
||||
5. **🔴 强制要求:每个测试用例必须包含至少5个测试步骤**
|
||||
|
||||
### 步骤4:创建YAML数据文件(如需要)
|
||||
### 步骤3:创建YAML数据文件(如需要)
|
||||
1. 分析方法依赖的数据表
|
||||
2. 设计符合业务逻辑的测试数据
|
||||
3. 使用适当的数据生成规则
|
||||
4. 考虑数据之间的关联关系
|
||||
|
||||
### 步骤5:编写测试脚本
|
||||
### 步骤4:编写测试脚本
|
||||
1. 创建测试执行脚本,包含完整的测试用例描述
|
||||
2. 测试脚本使用小写的方法名称作为文件名,后缀统一为.php
|
||||
3. **🔴 强制要求:每个测试用例必须包含至少5个测试步骤(r()...e()语句)**
|
||||
@@ -457,23 +403,23 @@ git branch
|
||||
5. 配置数据准备和环境设置
|
||||
6. 为每个测试步骤编写准确的断言验证
|
||||
|
||||
### 步骤6:验证测试脚本(AI大模型必须执行验证)
|
||||
### 步骤5:验证测试脚本(AI大模型必须执行验证)
|
||||
|
||||
**🔴 强制要求:必须先使用 php 命令运行脚本,如有报错进行修复,再使用 ztf 运行器验证**
|
||||
**🔴 强制要求:必须先使用 php 命令运行脚本没有错误再使用 ztf 运行器验证**
|
||||
|
||||
#### 6.1 执行测试命令
|
||||
#### 5.1 执行测试命令
|
||||
```bash
|
||||
# 切换到测试运行目录
|
||||
cd test/runtime
|
||||
|
||||
# 使用 php 命令运行测试脚本,检查是否有语法错误
|
||||
# 使用 php 命令运行测试脚本,检查是否有错误
|
||||
php ../../module/{moduleName}/test/model/{methodName}.php
|
||||
|
||||
# 使用 ztf 运行测试脚本
|
||||
./ztf run ../../module/{moduleName}/test/model/{methodName}.php
|
||||
```
|
||||
|
||||
#### 6.2 验证测试结果
|
||||
#### 5.2 验证测试结果
|
||||
**✅ 测试通过标准:**
|
||||
- 通过数(PASS):1
|
||||
- 失败数(FAIL):0
|
||||
@@ -485,13 +431,14 @@ php ../../module/{moduleName}/test/model/{methodName}.php
|
||||
3. 验证断言是否匹配实际结果
|
||||
4. 修改测试脚本后重新运行
|
||||
|
||||
#### 6.3 AI执行检查点
|
||||
#### 5.3 AI执行检查点
|
||||
- [ ] 已切换到 test/runtime 目录
|
||||
- [ ] 已使用 php 命令运行测试脚本,确认无错误
|
||||
- [ ] 已使用 ztf 命令运行测试
|
||||
- [ ] 测试结果显示 PASS=1, FAIL=0, SKIP=0
|
||||
- [ ] 如有失败,已根据错误信息修正代码
|
||||
|
||||
### 🔴 步骤7:提交代码(强制要求)
|
||||
### 🔴 步骤6:提交代码(强制要求)
|
||||
**测试验证通过后,必须按以下步骤提交代码:**
|
||||
|
||||
1. **添加测试文件到git(仅添加测试相关文件)**:
|
||||
@@ -500,7 +447,6 @@ php ../../module/{moduleName}/test/model/{methodName}.php
|
||||
git add module/{moduleName}/test/lib/{moduleName}.unittest.class.php
|
||||
git add module/{moduleName}/test/model/{methodName}.php
|
||||
git add module/{moduleName}/test/model/yaml/{tableName}_{methodName}.yaml
|
||||
# 注意:不要添加规范文档文件到测试分支!规范文档应保留在开发分支上
|
||||
```
|
||||
|
||||
2. **提交代码**:
|
||||
@@ -712,10 +658,6 @@ r($userTest->createTest($invalidUser)) && p('errors,account') && e('用户名不
|
||||
|
||||
### 🔴 AI大模型强制检查清单(每项必须100%完成)
|
||||
|
||||
**📋 分支操作检查**
|
||||
- [ ] 已执行 `git switch feature/unittest/ai` 切换分支
|
||||
- [ ] 已确认当前在 `feature/unittest/ai` 分支(git branch 显示*号)
|
||||
|
||||
**📋 代码生成检查**
|
||||
- [ ] 测试文件名使用小写方法名:`{methodName}.php`
|
||||
- [ ] 单元测试类名格式:`{moduleName}Test`
|
||||
@@ -725,6 +667,7 @@ r($userTest->createTest($invalidUser)) && p('errors,account') && e('用户名不
|
||||
- [ ] **🚨 所有代码行尾无空格**:检查每行末尾是否清洁
|
||||
|
||||
**📋 测试验证检查**
|
||||
- [ ] 已使用 `php` 命令验证测试脚本无语法错误
|
||||
- [ ] 已使用 `cd test/runtime && ./ztf run` 命令运行测试
|
||||
- [ ] 测试结果:PASS=1, FAIL=0, SKIP=0
|
||||
- [ ] 所有断言都与实际输出匹配
|
||||
@@ -740,13 +683,9 @@ r($userTest->createTest($invalidUser)) && p('errors,account') && e('用户名不
|
||||
- [ ] **注释清晰**:测试步骤描述明确,期望结果准确
|
||||
|
||||
### ⚠️ 常见错误避免
|
||||
- [ ] **避免直接在开发分支开发**:必须在测试分支上进行开发
|
||||
- [ ] **避免不提交代码**:测试通过后必须提交代码
|
||||
- [ ] **避免将规范文档提交到测试分支**:规范文档应该保留在开发分支供后续参照使用
|
||||
- [ ] **🚨 避免行尾空格**:所有生成的代码必须移除行尾空格,否则提交会被拒绝
|
||||
|
||||
---
|
||||
|
||||
**🎯 最终目标:通过遵循本指导文档,生成高质量、可维护的ZenTao单元测试脚本,确保代码质量和系统稳定性。**
|
||||
|
||||
**🚨 重要提醒:任何跳过分支管理步骤的行为都违反了ZenTao开发规范,必须严格按照流程执行!**
|
||||
|
||||
Reference in New Issue
Block a user