* [misc] Remove commands that require development using git branches.

This commit is contained in:
liugang
2025-09-05 09:52:59 +08:00
parent 13972c20fb
commit 9550f0347d
+17 -78
View File
@@ -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开发规范,必须严格按照流程执行!**