From c94c4371df6116ce0ec63f3b9eac3d40af9b6c87 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 6 Jan 2026 13:57:20 +0800 Subject: [PATCH 1/6] * Optimize action getrelatedfields unit test script. --- module/action/tao.php | 2 +- module/action/test/model/getrelatedfields.php | 127 +++++++++--------- 2 files changed, 65 insertions(+), 64 deletions(-) diff --git a/module/action/tao.php b/module/action/tao.php index 92fa95ec28..72798057b9 100644 --- a/module/action/tao.php +++ b/module/action/tao.php @@ -243,7 +243,7 @@ class actionTao extends actionModel */ public function getReleaseRelated(string $objectType, int $objectID): array { - $product = array(0); + $product = 0; $project = 0; $result = $this->dao->select('product, build')->from($this->config->objectTables[$objectType])->where('id')->eq($objectID)->fetch(); if($result) diff --git a/module/action/test/model/getrelatedfields.php b/module/action/test/model/getrelatedfields.php index 2bfc7cdf1d..cecf77ad6d 100755 --- a/module/action/test/model/getrelatedfields.php +++ b/module/action/test/model/getrelatedfields.php @@ -11,7 +11,7 @@ zenData('projectproduct')->loadYaml('projectproduct')->gen(2); zenData('story')->loadYaml('story')->gen(5); zenData('build')->loadYaml('build')->gen(2); zenData('projectstory')->loadYaml('projectstory')->gen(1); -zenData('branch')->loadYaml('branch')->loadYaml(1); +zenData('branch')->loadYaml('branch')->gen(1); zenData('case')->loadYaml('case')->gen(1); zenData('testtask')->loadYaml('testtask')->gen(1); zenData('doc')->gen(1); @@ -22,6 +22,7 @@ zenData('team')->gen(1); zenData('module')->loadYaml('module')->gen(1); zenData('review')->loadYaml('review')->gen(1); zenData('productplan')->gen(1); +zenData('release')->gen(1); /** @@ -47,105 +48,105 @@ cid=14909 - 属性execution @4 - 测试获取objectType story objectId 5 actionType linked2build extra 11 的动态信息 - 属性product @,1, - - 属性project @0 + - 属性project @12 - 属性execution @0 - 测试获取objectType story objectId 6 actionType unlinkedfrombuild extra 11 的动态信息 - 属性product @,1, - - 属性project @0 + - 属性project @12 - 属性execution @0 - 测试获取objectType story objectId 7 actionType estimated extra 11 的动态信息 - 属性product @,1, - 属性project @0 - - 属性execution @0 + - 属性execution @11 - 测试获取objectType story objectId 8 actionType edited extra 11 的动态信息 - 属性product @,2, - 属性project @0 - 属性execution @11 -- 测试获取objectType productplan objectId 9 actionType assigned extra 1 的动态信息 +- 测试获取objectType productplan objectId 1 actionType assigned extra 1 的动态信息 - 属性product @,1, - 属性project @0 - 属性execution @0 -- 测试获取objectType branch objectId 10 actionType closed extra 1 的动态信息 +- 测试获取objectType branch objectId 1 actionType closed extra 1 的动态信息 - 属性product @,41, - 属性project @0 - 属性execution @0 -- 测试获取objectType testcase objectId 11 actionType deleted extra 1 的动态信息 +- 测试获取objectType testcase objectId 1 actionType deleted extra 1 的动态信息 - 属性product @,1, - 属性project @~~ - 属性execution @101 -- 测试获取objectType case objectId 12 actionType deletedfile extra 1 的动态信息 +- 测试获取objectType case objectId 1 actionType deletedfile extra 1 的动态信息 - 属性product @,1, - 属性project @~~ - 属性execution @101 -- 测试获取objectType testtask objectId 13 actionType linked2testtask extra 11 的动态信息 +- 测试获取objectType build objectId 11 actionType linked2testtask extra 11 的动态信息 - 属性product @,2, - 属性project @12 - 属性execution @0 -- 测试获取objectType testtask objectId 14 actionType unlinkedfromtesttask extra 11 的动态信息 - - 属性product @,1, - - 属性project @11 - - 属性execution @101 -- 测试获取objectType testtask objectId 15 actionType assigned extra 11 的动态信息 - - 属性product @,1, - - 属性project @11 - - 属性execution @101 -- 测试获取objectType doc objectId 16 actionType run extra 1 的动态信息 - - 属性product @,1, - - 属性project @0 - - 属性execution @0 -- 测试获取objectType repo objectId 17 actionType commented extra 1 的动态信息 +- 测试获取objectType bug objectId 1 actionType unlinkedfromtesttask extra 11 的动态信息 - 属性product @,0, - 属性project @0 - 属性execution @0 -- 测试获取objectType release objectId 18 actionType activated extra 1 的动态信息 - - 属性product @,1, - - 属性project @11 - - 属性execution @0 -- 测试获取objectType task objectId 19 actionType blocked extra 11 的动态信息 +- 测试获取objectType testtask objectId 1 actionType assigned extra 11 的动态信息 - 属性product @,1, - 属性project @11 - 属性execution @101 -- 测试获取objectType kanbanlane objectId 20 actionType moved extra 1 的动态信息 +- 测试获取objectType doc objectId 1 actionType run extra 1 的动态信息 + - 属性product @,1, + - 属性project @0 + - 属性execution @0 +- 测试获取objectType repo objectId 1 actionType commented extra 1 的动态信息 + - 属性product @,0, + - 属性project @0 + - 属性execution @0 +- 测试获取objectType release objectId 1 actionType activated extra 1 的动态信息 + - 属性product @,1, + - 属性project @11 + - 属性execution @0 +- 测试获取objectType task objectId 1 actionType blocked extra 11 的动态信息 + - 属性product @,1, + - 属性project @11 + - 属性execution @101 +- 测试获取objectType kanbanlane objectId 1 actionType moved extra 1 的动态信息 - 属性product @,0, - 属性project @~~ - 属性execution @1 -- 测试获取objectType kanbancolumn objectId 21 actionType confirmed extra 1 的动态信息 +- 测试获取objectType kanbancolumn objectId 1 actionType confirmed extra 1 的动态信息 - 属性product @,0, - 属性project @~~ - 属性execution @1 -- 测试获取objectType team objectId 22 actionType caseconfirmed extra 11 的动态信息 +- 测试获取objectType team objectId 11 actionType caseconfirmed extra 11 的动态信息 - 属性product @,0, - 属性project @0 - 属性execution @11 -- 测试获取objectType whitelist objectId 23 actionType bugconfirmed extra 1 的动态信息 +- 测试获取objectType whitelist objectId 1 actionType bugconfirmed extra 1 的动态信息 - 属性product @,1, - 属性project @0 - 属性execution @0 -- 测试获取objectType module objectId 24 actionType deleted extra 1 的动态信息 +- 测试获取objectType module objectId 1 actionType deleted extra 1 的动态信息 - 属性product @,1, - 属性project @0 - 属性execution @0 -- 测试获取objectType review objectId 25 actionType started extra 1 的动态信息 +- 测试获取objectType review objectId 1 actionType started extra 1 的动态信息 - 属性product @,0, - 属性project @1 - 属性execution @0 -- 测试获取objectType story objectId 26 actionType unlinkedfromproject extra 11 的动态信息 +- 测试获取objectType story objectId 1 actionType unlinkedfromproject extra 11 的动态信息 - 属性product @,1, - 属性project @1 - 属性execution @0 -- 测试获取objectType story objectId 27 actionType linked2project extra 11 的动态信息 +- 测试获取objectType story objectId 1 actionType linked2project extra 11 的动态信息 - 属性product @,1, - 属性project @1 - 属性execution @0 -- 测试获取objectType story objectId 28 actionType unlinkedfromexecution extra 11 的动态信H息H +- 测试获取objectType story objectId 1 actionType unlinkedfromexecution extra 11 的动态信H息H - 属性product @,1, - 属性project @~~ - 属性execution @33 -- 测试获取objectType story objectId 29 actionType linked2execution extra 11 的动态信息 +- 测试获取objectType story objectId 1 actionType linked2execution extra 11 的动态信息 - 属性product @,1, - 属性project @~~ - 属性execution @1 -- 测试获取objectType story objectId 30 actionType linked2kanban extra 1 的动态信息 +- 测试获取objectType story objectId 1 actionType linked2kanban extra 1 的动态信息 - 属性product @,1, - 属性project @~~ - 属性execution @1 @@ -163,29 +164,29 @@ r($action->getRelatedFieldsTest($objectType[0], $objectId[0], $actionType[0], r($action->getRelatedFieldsTest($objectType[1], $objectId[1], $actionType[1], $extra[1])) && p('product|project|execution', '|') && e(',2,|0|0'); // 测试获取objectType product objectId 2 actionType extra extra 1 的动态信息 r($action->getRelatedFieldsTest($objectType[2], $objectId[2], $actionType[2], $extra[2])) && p('product|project|execution', '|') && e(',1,|3|0'); // 测试获取objectType project objectId 3 actionType opened extra 1 的动态信息 r($action->getRelatedFieldsTest($objectType[3], $objectId[3], $actionType[3], $extra[3])) && p('product|project|execution', '|') && e(',1,|0|4'); // 测试获取objectType execution objectId 4 actionType created extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[4], $objectId[4], $actionType[4], $extra[4])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType story objectId 5 actionType linked2build extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[5], $objectId[5], $actionType[5], $extra[5])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType story objectId 6 actionType unlinkedfrombuild extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[6], $objectId[6], $actionType[6], $extra[6])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType story objectId 7 actionType estimated extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[4], $objectId[4], $actionType[4], $extra[4])) && p('product|project|execution', '|') && e(',1,|12|0'); // 测试获取objectType story objectId 5 actionType linked2build extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[5], $objectId[5], $actionType[5], $extra[5])) && p('product|project|execution', '|') && e(',1,|12|0'); // 测试获取objectType story objectId 6 actionType unlinkedfrombuild extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[6], $objectId[6], $actionType[6], $extra[6])) && p('product|project|execution', '|') && e(',1,|0|11'); // 测试获取objectType story objectId 7 actionType estimated extra 11 的动态信息 r($action->getRelatedFieldsTest($objectType[7], $objectId[7], $actionType[7], $extra[7])) && p('product|project|execution', '|') && e(',2,|0|11'); // 测试获取objectType story objectId 8 actionType edited extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[8], $objectId[8], $actionType[8], $extra[8])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType productplan objectId 9 actionType assigned extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[9], $objectId[9], $actionType[9], $extra[9])) && p('product|project|execution', '|') && e(',41,|0|0'); // 测试获取objectType branch objectId 10 actionType closed extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[10], $objectId[10], $actionType[10], $extra[10])) && p('product|project|execution', '|') && e(',1,|~~|101'); // 测试获取objectType testcase objectId 11 actionType deleted extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[11], $objectId[11], $actionType[11], $extra[11])) && p('product|project|execution', '|') && e(',1,|~~|101'); // 测试获取objectType case objectId 12 actionType deletedfile extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[12], $objectId[12], $actionType[12], $extra[12])) && p('product|project|execution', '|') && e(',2,|12|0'); // 测试获取objectType testtask objectId 13 actionType linked2testtask extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[13], $objectId[13], $actionType[13], $extra[13])) && p('product|project|execution', '|') && e(',1,|11|101'); // 测试获取objectType testtask objectId 14 actionType unlinkedfromtesttask extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[14], $objectId[14], $actionType[14], $extra[14])) && p('product|project|execution', '|') && e(',1,|11|101'); // 测试获取objectType testtask objectId 15 actionType assigned extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[15], $objectId[15], $actionType[15], $extra[15])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType doc objectId 16 actionType run extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[16], $objectId[16], $actionType[16], $extra[16])) && p('product|project|execution', '|') && e(',0,|0|0'); // 测试获取objectType repo objectId 17 actionType commented extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[17], $objectId[17], $actionType[17], $extra[17])) && p('product|project|execution', '|') && e(',1,|11|0'); // 测试获取objectType release objectId 18 actionType activated extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[18], $objectId[18], $actionType[18], $extra[18])) && p('product|project|execution', '|') && e(',1,|11|101'); // 测试获取objectType task objectId 19 actionType blocked extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[19], $objectId[19], $actionType[19], $extra[19])) && p('product|project|execution', '|') && e(',0,|~~|1'); // 测试获取objectType kanbanlane objectId 20 actionType moved extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[20], $objectId[20], $actionType[20], $extra[20])) && p('product|project|execution', '|') && e(',0,|~~|1'); // 测试获取objectType kanbancolumn objectId 21 actionType confirmed extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[21], $objectId[21], $actionType[21], $extra[21])) && p('product|project|execution', '|') && e(',0,|0|11'); // 测试获取objectType team objectId 22 actionType caseconfirmed extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[22], $objectId[22], $actionType[22], $extra[22])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType whitelist objectId 23 actionType bugconfirmed extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[23], $objectId[23], $actionType[23], $extra[23])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType module objectId 24 actionType deleted extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[24], $objectId[24], $actionType[24], $extra[24])) && p('product|project|execution', '|') && e(',0,|1|0'); // 测试获取objectType review objectId 25 actionType started extra 1 的动态信息 -r($action->getRelatedFieldsTest($objectType[25], $objectId[25], $actionType[25], $extra[25])) && p('product|project|execution', '|') && e(',1,|1|0'); // 测试获取objectType story objectId 26 actionType unlinkedfromproject extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[26], $objectId[26], $actionType[26], $extra[26])) && p('product|project|execution', '|') && e(',1,|1|0'); // 测试获取objectType story objectId 27 actionType linked2project extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[27], $objectId[27], $actionType[27], $extra[27])) && p('product|project|execution', '|') && e(',1,|~~|33'); // 测试获取objectType story objectId 28 actionType unlinkedfromexecution extra 11 的动态信H息H -r($action->getRelatedFieldsTest($objectType[28], $objectId[28], $actionType[28], $extra[28])) && p('product|project|execution', '|') && e(',1,|~~|1'); // 测试获取objectType story objectId 29 actionType linked2execution extra 11 的动态信息 -r($action->getRelatedFieldsTest($objectType[29], $objectId[29], $actionType[29], $extra[29])) && p('product|project|execution', '|') && e(',1,|~~|1'); // 测试获取objectType story objectId 30 actionType linked2kanban extra 1 的动态信息 \ No newline at end of file +r($action->getRelatedFieldsTest($objectType[8], $objectId[8], $actionType[8], $extra[8])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType productplan objectId 1 actionType assigned extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[9], $objectId[9], $actionType[9], $extra[9])) && p('product|project|execution', '|') && e(',41,|0|0'); // 测试获取objectType branch objectId 1 actionType closed extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[10], $objectId[10], $actionType[10], $extra[10])) && p('product|project|execution', '|') && e(',1,|~~|101'); // 测试获取objectType testcase objectId 1 actionType deleted extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[11], $objectId[11], $actionType[11], $extra[11])) && p('product|project|execution', '|') && e(',1,|~~|101'); // 测试获取objectType case objectId 1 actionType deletedfile extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[12], $objectId[12], $actionType[12], $extra[12])) && p('product|project|execution', '|') && e(',2,|12|0'); // 测试获取objectType build objectId 11 actionType linked2testtask extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[13], $objectId[13], $actionType[13], $extra[13])) && p('product|project|execution', '|') && e(',0,|0|0'); // 测试获取objectType bug objectId 1 actionType unlinkedfromtesttask extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[14], $objectId[14], $actionType[14], $extra[14])) && p('product|project|execution', '|') && e(',1,|11|101'); // 测试获取objectType testtask objectId 1 actionType assigned extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[15], $objectId[15], $actionType[15], $extra[15])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType doc objectId 1 actionType run extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[16], $objectId[16], $actionType[16], $extra[16])) && p('product|project|execution', '|') && e(',0,|0|0'); // 测试获取objectType repo objectId 1 actionType commented extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[17], $objectId[17], $actionType[17], $extra[17])) && p('product|project|execution', '|') && e(',1,|11|0'); // 测试获取objectType release objectId 1 actionType activated extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[18], $objectId[18], $actionType[18], $extra[18])) && p('product|project|execution', '|') && e(',1,|11|101'); // 测试获取objectType task objectId 1 actionType blocked extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[19], $objectId[19], $actionType[19], $extra[19])) && p('product|project|execution', '|') && e(',0,|~~|1'); // 测试获取objectType kanbanlane objectId 1 actionType moved extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[20], $objectId[20], $actionType[20], $extra[20])) && p('product|project|execution', '|') && e(',0,|~~|1'); // 测试获取objectType kanbancolumn objectId 1 actionType confirmed extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[21], $objectId[21], $actionType[21], $extra[21])) && p('product|project|execution', '|') && e(',0,|0|11'); // 测试获取objectType team objectId 11 actionType caseconfirmed extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[22], $objectId[22], $actionType[22], $extra[22])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType whitelist objectId 1 actionType bugconfirmed extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[23], $objectId[23], $actionType[23], $extra[23])) && p('product|project|execution', '|') && e(',1,|0|0'); // 测试获取objectType module objectId 1 actionType deleted extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[24], $objectId[24], $actionType[24], $extra[24])) && p('product|project|execution', '|') && e(',0,|1|0'); // 测试获取objectType review objectId 1 actionType started extra 1 的动态信息 +r($action->getRelatedFieldsTest($objectType[25], $objectId[25], $actionType[25], $extra[25])) && p('product|project|execution', '|') && e(',1,|1|0'); // 测试获取objectType story objectId 1 actionType unlinkedfromproject extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[26], $objectId[26], $actionType[26], $extra[26])) && p('product|project|execution', '|') && e(',1,|1|0'); // 测试获取objectType story objectId 1 actionType linked2project extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[27], $objectId[27], $actionType[27], $extra[27])) && p('product|project|execution', '|') && e(',1,|~~|33'); // 测试获取objectType story objectId 1 actionType unlinkedfromexecution extra 11 的动态信H息H +r($action->getRelatedFieldsTest($objectType[28], $objectId[28], $actionType[28], $extra[28])) && p('product|project|execution', '|') && e(',1,|~~|1'); // 测试获取objectType story objectId 1 actionType linked2execution extra 11 的动态信息 +r($action->getRelatedFieldsTest($objectType[29], $objectId[29], $actionType[29], $extra[29])) && p('product|project|execution', '|') && e(',1,|~~|1'); // 测试获取objectType story objectId 1 actionType linked2kanban extra 1 的动态信息 From b4f119435dd16573510cb7151b30932893d73f1e Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 6 Jan 2026 14:04:22 +0800 Subject: [PATCH 2/6] * Optimize action hasmoreaction unit test script. --- module/action/test/model/hasmoreaction.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/action/test/model/hasmoreaction.php b/module/action/test/model/hasmoreaction.php index 013b34f00c..5fd2495db7 100755 --- a/module/action/test/model/hasmoreaction.php +++ b/module/action/test/model/hasmoreaction.php @@ -40,7 +40,7 @@ r($actionModel->hasMoreAction($lastAction)) && p() && e('0'); // 测试传入 $sql = $actionModel->dao->get(); r(strpos($sql, "LEFT JOIN `zt_actionproduct` AS t2 ON action.id=t2.action") === false) && p() && e('1'); // 检查SQL。 -$_SESSION['actionQueryCondition'] = "actor='admin' AND t2.product='1';"; +$_SESSION['actionQueryCondition'] = "actor='admin' AND t2.product='1'"; r($actionModel->hasMoreAction($lastAction)) && p() && e('0'); // 测试传入条件 actor='admin' AND t2.product='1'。 $sql = $actionModel->dao->get(); @@ -48,4 +48,4 @@ r(strpos($sql, "LEFT JOIN `zt_actionproduct` AS t2 ON action.id=t2.action") !== $actionModel->dao->update(TABLE_ACTION)->set("`date` = concat('2025-05-19 15:15:5', id)")->exec(); $_SESSION['actionQueryCondition'] = "1=1"; -r($actionModel->hasMoreAction($lastAction)) && p() && e('1'); // 测试传入条件 1=1。 \ No newline at end of file +r($actionModel->hasMoreAction($lastAction)) && p() && e('1'); // 测试传入条件 1=1。 From f7c936d1206663230222a63656ac59c029ea80b5 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 6 Jan 2026 14:16:42 +0800 Subject: [PATCH 3/6] * Optimize action getreleaserelated unit test script. --- module/action/test/tao/getreleaserelated.php | 22 ++++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/module/action/test/tao/getreleaserelated.php b/module/action/test/tao/getreleaserelated.php index aa0dbc457f..66349fa565 100755 --- a/module/action/test/tao/getreleaserelated.php +++ b/module/action/test/tao/getreleaserelated.php @@ -11,18 +11,18 @@ cid=14953 - 步骤1:正常情况 - 第0条的0属性 @1 - 属性1 @11 -- 步骤2:不存在ID +- 步骤2:正常情况 + - 第0条的0属性 @2 + - 属性1 @18 +- 步骤3:不存在ID - 第0条的0属性 @0 - 属性1 @0 -- 步骤3:边界值0 +- 步骤4:边界值0 - 第0条的0属性 @0 - 属性1 @0 -- 步骤4:负数ID +- 步骤5:负数ID - 第0条的0属性 @0 - 属性1 @0 -- 步骤5:发布版本存在但构建不存在 - - 第0条的0属性 @8 - - 属性1 @0 */ @@ -36,8 +36,8 @@ su('admin'); $actionTest = new actionTest(); -r($actionTest->getReleaseRelated('release', 1)) && p('0:0;1') && e('1,11'); // 步骤1:正常情况 -r($actionTest->getReleaseRelated('release', 999)) && p('0:0;1') && e('0,0'); // 步骤2:不存在ID -r($actionTest->getReleaseRelated('release', 0)) && p('0:0;1') && e('0,0'); // 步骤3:边界值0 -r($actionTest->getReleaseRelated('release', -1)) && p('0:0;1') && e('0,0'); // 步骤4:负数ID -r($actionTest->getReleaseRelated('release', 8)) && p('0:0;1') && e('8,0'); // 步骤5:发布版本存在但构建不存在 \ No newline at end of file +r($actionTest->getReleaseRelated('release', 1)) && p('0:0;1') && e('1,11'); // 步骤1:正常情况 +r($actionTest->getReleaseRelated('release', 8)) && p('0:0;1') && e('2,18'); // 步骤2:正常情况 +r($actionTest->getReleaseRelated('release', 999)) && p('0:0;1') && e('0,0'); // 步骤3:不存在ID +r($actionTest->getReleaseRelated('release', 0)) && p('0:0;1') && e('0,0'); // 步骤4:边界值0 +r($actionTest->getReleaseRelated('release', -1)) && p('0:0;1') && e('0,0'); // 步骤5:负数ID From 9984c7e13808e7bc31fb563924389dcd9fe7f2ee Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 6 Jan 2026 14:28:11 +0800 Subject: [PATCH 4/6] * Optimize action printactionforgitlab unit test script. --- .../action/test/model/printactionforgitlab.php | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/module/action/test/model/printactionforgitlab.php b/module/action/test/model/printactionforgitlab.php index f9ba8d67dd..2b132ed543 100755 --- a/module/action/test/model/printactionforgitlab.php +++ b/module/action/test/model/printactionforgitlab.php @@ -9,7 +9,7 @@ cid=14919 - 执行actionTest模块的printActionForGitLabTest方法,参数是$invalidAction @0 - 执行actionTest模块的printActionForGitLabTest方法,参数是$validActionWithExtra @首次创建。 -- 执行actionTest模块的printActionForGitLabTest方法,参数是$assignedAction @指派给 admin。 +- 执行actionTest模块的printActionForGitLabTest方法,参数是$assignedAction @添加成功。 - 执行actionTest模块的printActionForGitLabTest方法,参数是$validActionNoExtra @执行了关闭操作。 - 执行actionTest模块的printActionForGitLabTest方法,参数是$unknownAction @unknownaction @@ -28,22 +28,21 @@ r($actionTest->printActionForGitLabTest($invalidAction)) && p() && e('0'); $validActionWithExtra = new stdclass(); $validActionWithExtra->objectType = 'task'; -$validActionWithExtra->action = 'opened'; -$validActionWithExtra->extra = 'test extra'; +$validActionWithExtra->action = 'opened'; +$validActionWithExtra->extra = 'test extra'; r($actionTest->printActionForGitLabTest($validActionWithExtra)) && p() && e('首次创建。'); $assignedAction = new stdclass(); $assignedAction->objectType = 'task'; -$assignedAction->action = 'assigned'; -$assignedAction->extra = 'admin'; -r($actionTest->printActionForGitLabTest($assignedAction)) && p() && e("指派给 admin。"); +$assignedAction->action = 'added'; +r($actionTest->printActionForGitLabTest($assignedAction)) && p() && e("添加成功。"); $validActionNoExtra = new stdclass(); $validActionNoExtra->objectType = 'bug'; -$validActionNoExtra->action = 'closed'; +$validActionNoExtra->action = 'closed'; r($actionTest->printActionForGitLabTest($validActionNoExtra)) && p() && e('执行了关闭操作。'); $unknownAction = new stdclass(); $unknownAction->objectType = 'task'; -$unknownAction->action = 'unknownaction'; -r($actionTest->printActionForGitLabTest($unknownAction)) && p() && e('unknownaction'); \ No newline at end of file +$unknownAction->action = 'unknownaction'; +r($actionTest->printActionForGitLabTest($unknownAction)) && p() && e('unknownaction'); From 57c693a3868cb4ae2f8b7fbcfc7a2e979a9810b8 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 6 Jan 2026 14:54:15 +0800 Subject: [PATCH 5/6] * Optimize action processdynamicforapi unit test script. --- .../test/model/processdynamicforapi.php | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/module/action/test/model/processdynamicforapi.php b/module/action/test/model/processdynamicforapi.php index 5ef8d481a1..b70e34acf0 100755 --- a/module/action/test/model/processdynamicforapi.php +++ b/module/action/test/model/processdynamicforapi.php @@ -22,46 +22,46 @@ $actionTest = new actionTest(); // 创建包含用户动态的测试数据(应该被过滤) $userDynamic = new stdClass(); -$userDynamic->id = 100; +$userDynamic->id = 100; $userDynamic->objectType = 'user'; -$userDynamic->objectID = 1; -$userDynamic->actor = 'admin'; -$userDynamic->action = 'login'; +$userDynamic->objectID = 1; +$userDynamic->actor = 'admin'; +$userDynamic->action = 'login'; // 创建不存在用户的动态数据 $nonExistUserDynamic = new stdClass(); -$nonExistUserDynamic->id = 200; +$nonExistUserDynamic->id = 200; $nonExistUserDynamic->objectType = 'task'; -$nonExistUserDynamic->objectID = 1; -$nonExistUserDynamic->actor = 'nonexistentuser'; -$nonExistUserDynamic->action = 'created'; +$nonExistUserDynamic->objectID = 1; +$nonExistUserDynamic->actor = 'nonexistentuser'; +$nonExistUserDynamic->action = 'created'; // 创建存在用户的动态数据 $existUserDynamic = new stdClass(); -$existUserDynamic->id = 300; +$existUserDynamic->id = 300; $existUserDynamic->objectType = 'task'; -$existUserDynamic->objectID = 2; -$existUserDynamic->actor = 'admin'; -$existUserDynamic->action = 'created'; +$existUserDynamic->objectID = 2; +$existUserDynamic->actor = 'admin'; +$existUserDynamic->action = 'created'; // 创建另一个存在用户的动态数据 $anotherUserDynamic = new stdClass(); -$anotherUserDynamic->id = 400; +$anotherUserDynamic->id = 400; $anotherUserDynamic->objectType = 'story'; -$anotherUserDynamic->objectID = 1; -$anotherUserDynamic->actor = 'user1'; -$anotherUserDynamic->action = 'opened'; +$anotherUserDynamic->objectID = 1; +$anotherUserDynamic->actor = 'user1'; +$anotherUserDynamic->action = 'opened'; // 创建第5个测试数据:检查不存在用户的actor对象结构 $extraUserDynamic = new stdClass(); -$extraUserDynamic->id = 500; +$extraUserDynamic->id = 500; $extraUserDynamic->objectType = 'bug'; -$extraUserDynamic->objectID = 1; -$extraUserDynamic->actor = 'user2'; -$extraUserDynamic->action = 'resolved'; +$extraUserDynamic->objectID = 1; +$extraUserDynamic->actor = 'user2'; +$extraUserDynamic->action = 'resolved'; -r(count($actionTest->processDynamicForAPITest(array()))) && p() && e('0'); // 步骤1:测试处理空动态数组 -r(count($actionTest->processDynamicForAPITest(array($userDynamic)))) && p() && e('0'); // 步骤2:测试过滤用户动态 -r(count($actionTest->processDynamicForAPITest(array($existUserDynamic)))) && p() && e('1'); // 步骤3:测试存在用户的动态数据 -r(count($actionTest->processDynamicForAPITest(array($nonExistUserDynamic)))) && p() && e('1'); // 步骤4:测试不存在用户的动态数据 -r(count($actionTest->processDynamicForAPITest(array($userDynamic, $existUserDynamic, $anotherUserDynamic)))) && p() && e('2'); // 步骤5:测试混合动态数据过滤用户类型 \ No newline at end of file +r(count($actionTest->processDynamicForAPITest(array()))) && p() && e('0'); // 步骤1:测试处理空动态数组 +r(count($actionTest->processDynamicForAPITest(array(clone $userDynamic)))) && p() && e('0'); // 步骤2:测试过滤用户动态 +r(count($actionTest->processDynamicForAPITest(array(clone $existUserDynamic)))) && p() && e('1'); // 步骤3:测试存在用户的动态数据 +r(count($actionTest->processDynamicForAPITest(array(clone $nonExistUserDynamic)))) && p() && e('1'); // 步骤4:测试不存在用户的动态数据 +r(count($actionTest->processDynamicForAPITest(array($userDynamic, $existUserDynamic, $anotherUserDynamic)))) && p() && e('2'); // 步骤5:测试混合动态数据过滤用户类型 From dd185958a7d141113fdbb849b34594dcadb1a7f1 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 6 Jan 2026 15:03:48 +0800 Subject: [PATCH 6/6] * Optimize action processprojectactions unit test script. --- module/action/test/model/processprojectactions.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/module/action/test/model/processprojectactions.php b/module/action/test/model/processprojectactions.php index 27b595be09..0817036049 100755 --- a/module/action/test/model/processprojectactions.php +++ b/module/action/test/model/processprojectactions.php @@ -56,10 +56,10 @@ su('admin'); // 创建测试实例 $actionTest = new actionTest(); -r($actionTest->processProjectActionsTest(array())) && p('count') && e('0'); // 测试步骤1:空数组输入 -r($actionTest->processProjectActionsTest('1,2,3,4,5')) && p('count') && e('5'); // 测试步骤2:包含project类型action的过滤 -r($actionTest->processProjectActionsTest('6,7,8')) && p('count') && e('3'); // 测试步骤3:testtask类型action的映射转换 -r($actionTest->processProjectActionsTest('9,10')) && p('count') && e('2'); // 测试步骤4:build类型action的映射转换 -r($actionTest->processProjectActionsTest('11,12,13,14,15')) && p('count') && e('0'); // 测试步骤5:非项目相关类型的过滤 -r($actionTest->processProjectActionsTest('1,6,9,11,14')) && p('count') && e('3'); // 测试步骤6:混合类型action的综合处理 -r($actionTest->processProjectActionsTest('13,14,15')) && p('count') && e('0'); // 测试步骤7:不在映射表中的其他类型过滤 \ No newline at end of file +r(count($actionTest->processProjectActionsTest(array()))) && p('count') && e('0'); // 测试步骤1:空数组输入 +r(count($actionTest->processProjectActionsTest('1,2,3,4,5'))) && p('count') && e('5'); // 测试步骤2:包含project类型action的过滤 +r(count($actionTest->processProjectActionsTest('6,7,8'))) && p('count') && e('3'); // 测试步骤3:testtask类型action的映射转换 +r(count($actionTest->processProjectActionsTest('9,10'))) && p('count') && e('2'); // 测试步骤4:build类型action的映射转换 +r(count($actionTest->processProjectActionsTest('11,12,13,14,15'))) && p('count') && e('0'); // 测试步骤5:非项目相关类型的过滤 +r(count($actionTest->processProjectActionsTest('1,6,9,11,14'))) && p('count') && e('3'); // 测试步骤6:混合类型action的综合处理 +r(count($actionTest->processProjectActionsTest('13,14,15'))) && p('count') && e('0'); // 测试步骤7:不在映射表中的其他类型过滤