From 5fdc6baa4f504abcce0010ef3f3469b65e10510f Mon Sep 17 00:00:00 2001 From: liugang Date: Fri, 19 Sep 2025 05:36:56 +0800 Subject: [PATCH] + [misc] Add unit tests for taskZen::getParentEstStartedAndDeadline() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../test/zen/getparentestartedanddeadline.php | 57 ++++++++++++++ .../task_getparentestartedanddeadline.yaml | 77 +++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100755 module/task/test/zen/getparentestartedanddeadline.php create mode 100644 module/task/test/zen/yaml/task_getparentestartedanddeadline.yaml diff --git a/module/task/test/zen/getparentestartedanddeadline.php b/module/task/test/zen/getparentestartedanddeadline.php new file mode 100755 index 0000000000..dee9929e42 --- /dev/null +++ b/module/task/test/zen/getparentestartedanddeadline.php @@ -0,0 +1,57 @@ +#!/usr/bin/env php +dao->exec("TRUNCATE TABLE zt_task"); +$tester->dao->exec("INSERT INTO zt_task (id, parent, path, project, execution, name, type, status, estStarted, deadline) VALUES +(1, 0, ',1,', 1, 1, '根任务1', 'devel', 'wait', '2024-01-01', '2024-01-31'), +(2, 1, ',1,2,', 1, 1, '子任务1-1', 'devel', 'doing', '0000-00-00', '2024-01-15'), +(3, 1, ',1,3,', 1, 1, '子任务1-2', 'devel', 'done', '2024-01-03', '0000-00-00'), +(4, 0, ',4,', 1, 1, '根任务2', 'test', 'wait', '2024-02-01', '2024-02-28'), +(5, 4, ',4,5,', 1, 1, '子任务2-1', 'test', 'doing', '0000-00-00', '2024-02-15'), +(6, 4, ',4,6,', 1, 1, '子任务2-2', 'test', 'done', '2024-02-03', '0000-00-00'), +(7, 0, ',7,', 1, 1, '根任务3', 'design', 'wait', '2024-03-01', '0000-00-00'), +(8, 7, ',7,8,', 1, 1, '子任务3-1', 'design', 'doing', '0000-00-00', '2024-03-20'), +(9, 7, ',7,9,', 1, 1, '子任务3-2', 'design', 'done', '2024-03-10', '2024-03-18'), +(10, 0, ',10,', 1, 1, '根任务4', 'study', 'wait', '0000-00-00', '2024-04-30'), +(11, 10, ',10,11,', 1, 1, '子任务4-1', 'study', 'doing', '2024-04-01', '0000-00-00'), +(12, 10, ',10,12,', 1, 1, '子任务4-2', 'study', 'done', '2024-04-03', '2024-04-20'), +(13, 0, ',13,', 2, 2, '独立任务1', 'devel', 'wait', '0000-00-00', '2024-04-30'), +(14, 0, ',14,', 2, 2, '独立任务2', 'test', 'doing', '2024-04-01', '0000-00-00'), +(15, 14, ',14,15,', 2, 2, '子任务5-1', 'test', 'done', '2024-04-05', '2024-04-15')"); + +// 3. 用户登录 +su('admin'); + +// 4. 创建测试实例 +$taskTest = new taskZenTest(); + +// 5. 强制要求:必须包含至少7个测试步骤 +r(count($taskTest->getParentEstStartedAndDeadlineTest(array(1, 4)))) && p() && e('2'); // 步骤1:正常情况返回数量 +r(count($taskTest->getParentEstStartedAndDeadlineTest(array()))) && p() && e('0'); // 步骤2:空数组返回数量 +r(count($taskTest->getParentEstStartedAndDeadlineTest(array(999, 1000)))) && p() && e('0'); // 步骤3:不存在ID返回数量 +r($taskTest->getParentEstStartedAndDeadlineTest(array(1))) && p('1:estStarted') && e('2024-01-01'); // 步骤4:验证父任务1开始时间 +r($taskTest->getParentEstStartedAndDeadlineTest(array(4))) && p('4:deadline') && e('2024-02-28'); // 步骤5:验证父任务4截止时间 +r($taskTest->getParentEstStartedAndDeadlineTest(array(7))) && p('7:estStarted') && e('2024-03-01'); // 步骤6:验证多层级任务路径处理 +r($taskTest->getParentEstStartedAndDeadlineTest(array(13))) && p('13:deadline') && e('2024-04-30'); // 步骤7:验证零时间处理 \ No newline at end of file diff --git a/module/task/test/zen/yaml/task_getparentestartedanddeadline.yaml b/module/task/test/zen/yaml/task_getparentestartedanddeadline.yaml new file mode 100644 index 0000000000..2d36616d7c --- /dev/null +++ b/module/task/test/zen/yaml/task_getparentestartedanddeadline.yaml @@ -0,0 +1,77 @@ +--- +title: 测试getParentEstStartedAndDeadline方法的任务数据 +desc: 包含多层级任务数据,用于测试父任务开始时间和截止时间获取功能 +author: AI +version: 1.0 + +fields: +- field: id + note: 任务ID + range: 1-20 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: parent + note: 父任务ID + range: 0{4},1{3},2{2},4{3},5{2},6{2},7{2},8{2} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: path + note: 任务路径 + range: ',1,',',1,2,',',1,2,3,',',1,3,',',4,',',4,5,',',4,5,6,',',4,6,',',7,',',7,8,',',7,8,9,',',7,9,',',10,',',10,11,',',10,11,12,',',10,12,',',13,',',13,14,',',13,14,15,',',13,15,',',16,',',17,' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: project + note: 项目ID + range: 1{10},2{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: execution + note: 执行ID + range: 1{10},2{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: name + note: 任务名称 + range: '根任务1,子任务1-1,孙任务1-1-1,子任务1-2,根任务2,子任务2-1,孙任务2-1-1,子任务2-2,根任务3,子任务3-1,孙任务3-1-1,子任务3-2,根任务4,子任务4-1,孙任务4-1-1,子任务4-2,独立任务1,独立任务2,删除任务,测试任务' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: type + note: 任务类型 + range: devel{8},test{6},design{4},study{2} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: status + note: 任务状态 + range: wait{6},doing{6},done{4},pause{2},cancel{1},closed{1} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: estStarted + note: 预计开始时间 + range: '2024-01-01,0000-00-00,2024-01-05,2024-01-03,2024-02-01,0000-00-00,2024-02-10,2024-02-05,2024-03-01,0000-00-00,2024-03-15,2024-03-10,0000-00-00,2024-04-01,2024-04-05,2024-04-03,2024-05-01,2024-06-01,0000-00-00,2024-07-01' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: deadline + note: 截止时间 + range: '2024-01-31,2024-01-15,0000-00-00,2024-01-25,2024-02-28,2024-02-20,0000-00-00,2024-02-25,0000-00-00,2024-03-20,2024-03-25,2024-03-18,2024-04-30,0000-00-00,2024-04-15,2024-04-20,2024-05-31,2024-06-30,2024-07-15,0000-00-00' + prefix: "" + postfix: "" + loop: 0 + format: "" \ No newline at end of file