diff --git a/module/program/test/lib/program.unittest.class.php b/module/program/test/lib/program.unittest.class.php index b9d5c3caf2..950b30b673 100644 --- a/module/program/test/lib/program.unittest.class.php +++ b/module/program/test/lib/program.unittest.class.php @@ -702,4 +702,20 @@ class programTest return $result; } + + /** + * 设置没有任务的执行数据。 + * Set execution stat when has no task. + * + * @param array $projectIdList + * @access public + * @return array + */ + public function setNoTaskExecutionTest(array $projectIdList): array + { + $result = $this->program->setNoTaskExecution($projectIdList); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/program/test/tao/setnotaskexecution.php b/module/program/test/tao/setnotaskexecution.php new file mode 100755 index 0000000000..fb290cf252 --- /dev/null +++ b/module/program/test/tao/setnotaskexecution.php @@ -0,0 +1,54 @@ +#!/usr/bin/env php +id->range('1-10'); +$projectTable->project->range('0,0,0,1,1,1,2,2,3,3'); +$projectTable->type->range('project,project,project,execution,execution,execution,execution,execution,execution,execution'); +$projectTable->name->range('项目1,项目2,项目3,执行1-1,执行1-2,执行1-3,执行2-1,执行2-2,执行3-1,执行3-2'); +$projectTable->status->range('doing'); +$projectTable->deleted->range('0'); +$projectTable->path->range(',1,,2,,3,,1,4,,1,5,,1,6,,2,7,,2,8,,3,9,,3,10,'); +$projectTable->gen(10); + +$taskTable = zenData('task'); +$taskTable->id->range('1-8'); +$taskTable->execution->range('4,4,5,5,5,7,7,8'); +$taskTable->name->range('任务4-1,任务4-2,任务5-1,任务5-2,任务5-3,任务7-1,任务7-2,任务8-1'); +$taskTable->status->range('wait,wait,doing,doing,doing,done,done,closed'); +$taskTable->deleted->range('0'); +$taskTable->gen(8); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$programTest = new programTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +r($programTest->setNoTaskExecutionTest(array(1))) && p('6:execution') && e('6'); // 步骤1:项目1下有执行6没有任务 +r($programTest->setNoTaskExecutionTest(array(2))) && p() && e('0'); // 步骤2:项目2下所有执行都有任务 +r($programTest->setNoTaskExecutionTest(array(3))) && p('9:execution;10:execution') && e('9;10'); // 步骤3:项目3下执行9,10都没有任务 +r($programTest->setNoTaskExecutionTest(array())) && p() && e('0'); // 步骤4:空项目列表 +r($programTest->setNoTaskExecutionTest(array(999))) && p() && e('0'); // 步骤5:不存在的项目ID \ No newline at end of file diff --git a/module/program/test/tao/yaml/project_setnotaskexecution.yaml b/module/program/test/tao/yaml/project_setnotaskexecution.yaml new file mode 100644 index 0000000000..060cc90a5d --- /dev/null +++ b/module/program/test/tao/yaml/project_setnotaskexecution.yaml @@ -0,0 +1,34 @@ +--- +title: project表测试数据 +desc: 用于setNoTaskExecution方法测试的项目和执行数据 + +fields: +- field: id + range: 1-10 +- field: project + range: 0,0,0,1,1,1,2,2,3,3 + note: 前3个为项目(project=0),4-6执行属于项目1,7-8执行属于项目2,9-10执行属于项目3 +- field: type + range: project,project,project,execution,execution,execution,execution,execution,execution,execution + note: 前3个为项目,后7个为执行 +- field: name + range: 项目1,项目2,项目3,执行1-1,执行1-2,执行1-3,执行2-1,执行2-2,执行3-1,执行3-2 +- field: status + range: doing{10} +- field: deleted + range: 0{10} + note: 全部未删除 +- field: path + range: ',1,',',2,',',3,',',1,4,',',1,5,',',1,6,',',2,7,',',2,8,',',3,9,',',3,10,' +- field: begin + range: 2024-01-01{10} +- field: end + range: 2024-12-31{10} +- field: desc + range: 测试项目描述{3},测试执行描述{7} +- field: acl + range: open{10} +- field: whitelist + range: ''{10} +- field: auth + range: extend{10} \ No newline at end of file diff --git a/module/program/test/tao/yaml/task_setnotaskexecution.yaml b/module/program/test/tao/yaml/task_setnotaskexecution.yaml new file mode 100644 index 0000000000..d37bb6602b --- /dev/null +++ b/module/program/test/tao/yaml/task_setnotaskexecution.yaml @@ -0,0 +1,33 @@ +--- +title: task表测试数据 +desc: 用于setNoTaskExecution方法测试的任务数据 + +fields: +- field: id + range: 1-8 +- field: execution + range: 4,4,5,5,5,7,7,8 + note: 执行4有2个任务,执行5有3个任务,执行7有2个任务,执行8有1个任务,执行6和9、10没有任务 +- field: name + range: 任务4-1,任务4-2,任务5-1,任务5-2,任务5-3,任务7-1,任务7-2,任务8-1 +- field: status + range: wait{2},doing{3},done{2},closed{1} +- field: type + range: devel{4},test{2},design{2} +- field: estimate + range: 8,10,6,12,5,15,8,10 +- field: consumed + range: 4,5,3,6,2,8,4,5 +- field: left + range: 4,5,3,6,3,7,4,5 +- field: deleted + range: 0{7},1{1} + note: 前7个任务未删除,最后1个任务已删除 +- field: assignedTo + range: user1{2},user2{3},user3{2},admin{1} +- field: finishedBy + range: ''{4},user1,user2,'','' +- field: deadline + range: 2024-06-30{8} +- field: priority + range: 1{2},2{4},3{2} \ No newline at end of file