Merge branch ztflow-yidong-release/21.7.2#wangyidong of zentao/zentaopms (#9197)

This commit is contained in:
刘刚
2025-06-06 14:53:59 +08:00
committed by Gitfox
19 changed files with 259 additions and 70 deletions
+18 -3
View File
@@ -8,12 +8,27 @@ title=测试 devModel::getModuleExtPath();
cid=1
pid=1
获取扩展的模块路径 >> xuan
- 获取开源版扩展的模块路径 @xuan
- 检查 xuan 扩展路径 @1
- 获取旗舰版扩展的模块路径 @common
- 检查旗舰版 common 扩展路径 @1
- 检查 IPD 版 common 扩展路径 @1
*/
global $tester;
$tester->loadModel('dev');
$extPath = $tester->dev->getModuleExtPath();
r(key($extPath)) && p() && e('xuan'); // 获取扩展的模块路径
$tester->dev->config->edition = 'open';
$extPath = $tester->dev->getModuleExtPath();
r(key($extPath)) && p() && e('xuan'); // 获取开源版扩展的模块路径
r(strpos($extPath['xuan'], DS . 'extension' . DS . 'xuan' . DS) !== false) && p() && e('1'); // 检查 xuan 扩展路径
$tester->dev->config->edition = 'max';
$extPath = $tester->dev->getModuleExtPath();
r(key($extPath)) && p() && e('common'); // 获取旗舰版扩展的模块路径
r(strpos($extPath['common'], DS . 'extension' . DS . 'max' . DS) !== false) && p() && e('1'); // 检查旗舰版 common 扩展路径
$tester->dev->config->edition = 'ipd';
$extPath = $tester->dev->getModuleExtPath();
r(strpos($extPath['common'], DS . 'extension' . DS . 'ipd' . DS) !== false) && p() && e('1'); // 检查 IPD 版 common 扩展路径
@@ -129,17 +129,17 @@ class editorTest
$link = $this->objectModel->addLink4Dir($extModelPath);
$result .= (strpos($link->actions['items'][0]['data-url'], 'newExtend') === false ? 0 : 1) . ',';
$extJSPath = $extensionPath . 'js';
$extJSPath = $extensionPath . 'js/create';
$link = $this->objectModel->addLink4Dir($extJSPath);
$result .= (strpos($link->actions['items'][0]['data-url'], 'newJS') === false ? 0 : 1) . ',';
$extCSSPath = $extensionPath . 'css';
$extCSSPath = $extensionPath . 'css/create';
$link = $this->objectModel->addLink4Dir($extCSSPath);
$result .= (strpos($link->actions['items'][0]['data-url'], 'newCSS') === false ? 0 : 1) . ',';
$extLangPath = $extensionPath . 'lang';
$extLangPath = $extensionPath . 'lang/zh-cn';
$link = $this->objectModel->addLink4Dir($extLangPath);
$result .= (strpos($link->actions['items'][0]['data-url'], 'lang') === false ? 0 : 1);
$result .= (strpos($link->actions['items'][0]['data-url'], 'newExtend') === false ? 0 : 1);
return $result;
}
@@ -181,27 +181,27 @@ class editorTest
$extensionPath = $extensionRoot . $edition . DS . 'todo' . DS . 'ext' . DS;
$extControlPath = $extensionPath . 'control' . DS . 'create.php';
$link = $this->objectModel->addLink4File($extControlPath, 'create.php');
$result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$extModelPath = $extensionPath . 'model' . DS . 'zentaobiz.class.php';
$link = $this->objectModel->addLink4File($extModelPath, 'zentaobiz.class.php');
$result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$extJSPath = $extensionPath . 'js' . DS . 'create' . DS . 'zentaobiz.js';
$link = $this->objectModel->addLink4File($extJSPath, 'zentaobiz.js');
$result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$extCSSPath = $extensionPath . 'css' . DS . 'create' . DS . 'zentaobiz.css';
$link = $this->objectModel->addLink4File($extCSSPath, 'zentaobiz.css');
$result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$extLangPath = $extensionPath . 'lang' . DS . 'zh-cn' . DS . 'zentaobiz.php';
$link = $this->objectModel->addLink4File($extLangPath, 'zentaobiz.php');
$result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0) . ',';
$extConfigPath = $extensionPath . 'config' . DS . 'zentaobiz.php';
$link = $this->objectModel->addLink4File($extConfigPath, 'zentaobiz.php');
$result .= ((str_contains($link->actions['items'][1]['data-url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0);
$result .= ((str_contains($link->actions['items'][1]['url'], 'delete') && str_contains($link->actions['items'][0]['data-url'], 'edit')) ? 1 : 0);
return $result;
}
+9 -2
View File
@@ -10,9 +10,16 @@ title=测试 editorModel::addLink4Dir();
cid=1
pid=1
添加todo模块的链接 >> 1,1,1,1,1,1,1,1
- 开源版添加todo模块的链接 @1,1,1,1,1,1,1,1
- 收费版添加todo模块的链接 @1,1,1,1,1,1,1,1
*/
global $config;
$editor = new editorTest();
r($editor->addLink4DirTest()) && p() && e('1,1,1,1,1,1,1,1'); //添加todo模块的链接
$config->edition = 'open';
r($editor->addLink4DirTest()) && p() && e('1,1,1,1,1,1,1,1'); //开源版添加todo模块的链接
$config->edition = 'max';
r($editor->addLink4DirTest()) && p() && e('1,1,1,1,1,1,1,1'); //收费版添加todo模块的链接
+10 -2
View File
@@ -10,9 +10,17 @@ title=测试 editorModel::addLink4File();
cid=1
pid=1
添加todo模块的链接 >> 1,1,1,1,1,1,1,1,1,1,1
- 开源版添加todo模块的链接 @1,1,1,1,1,1,1,1,1,1,1
- 收费版添加todo模块的链接 @1,1,1,1,1,1,1,1,1,1,1
*/
global $config;
$editor = new editorTest();
r($editor->addLink4FileTest()) && p() && e('1,1,1,1,1,1,1,1,1,1,1'); //添加todo模块的链接
$config->edition = 'open';
r($editor->addLink4FileTest()) && p() && e('1,1,1,1,1,1,1,1,1,1,1'); //开源版添加todo模块的链接
$config->edition = 'max';
r($editor->addLink4FileTest()) && p() && e('1,1,1,1,1,1,1,1,1,1,1'); //收费版添加todo模块的链接
+17 -9
View File
@@ -20,15 +20,23 @@ $execution->gen(5);
/**
title=测试executionModel->activateTest();
cid=1
pid=1
cid=0
敏捷执行激活 >> status,suspended,doing
瀑布执行激活 >> status,suspended,doing
看板执行激活 >> status,suspended,doing
修改激活时间 >> begin
修改顺延 >> begin
子瀑布激活获取父瀑布状态 >> doing
- 敏捷执行激活
- 第0条的field属性 @status
- 第0条的old属性 @suspended
- 第0条的new属性 @wait
- 瀑布执行激活
- 第0条的field属性 @status
- 第0条的old属性 @suspended
- 第0条的new属性 @wait
- 看板执行激活
- 第0条的field属性 @status
- 第0条的old属性 @suspended
- 第0条的new属性 @wait
- 修改激活时间第1条的field属性 @begin
- 修改顺延第1条的field属性 @begin
- 子瀑布激活获取父瀑布状态属性status @wait
*/
@@ -39,7 +47,7 @@ $readjustTime = array();
$executionTester = new executionTest();
r($executionTester->activateTest($executionIDList[0])) && p('0:field,old,new') && e('status,suspended,wait'); // 敏捷执行激活
r($executionTester->activateTest($executionIDList[1])) && p('0:field,old,new') && e('status,suspended,wait'); // 瀑布执行激活
r($executionTester->activateTest($executionIDList[2])) && p('0:field,old,new') && e('status,suspended,wait'); // 看板执行激活
r($executionTester->activateTest($executionIDList[2])) && p('0:field,old,new') && e('status,suspended,wait'); // 看板执行激活
r($executionTester->activateTest($executionIDList[3],$readjustTime)) && p('1:field') && e('begin'); // 修改激活时间
r($executionTester->activateTest($executionIDList[4],$readjustTask)) && p('1:field') && e('begin'); // 修改顺延
r($executionTester->activateTest($executionIDList[3], array(), true)) && p('status') && e('wait'); // 子瀑布激活获取父瀑布状态
+17 -14
View File
@@ -22,21 +22,24 @@ $project->gen(4);
/**
title=测试executionModel->create();
cid=1
pid=1
cid=0
测试创建敏捷私有执行 >> 新增私有敏捷执行,sprint
测试创建敏捷公开执行 >> 新增公开敏捷执行code,sprint
测试创建瀑布私有执行 >> 新增私有瀑布执行,stage
测试创建瀑布公开执行 >> 新增公开瀑布执行code,stage
测试创建看板私有执行 >> 新增私有看板执行,kanban
测试创建看板公开执行 >> 新增公开看板执行code,kanban
测试创建迭代团队分配 >> user1,user2,user3,user4
测试不输入项目 >> 所属项目不能为空。
测试不输入执行名称 >> 『执行名称』不能为空。
测试不输入执行代号 >> 『执行代号』不能为空。
测试一样的执行名称 >> 『执行名称』已经有『新增私有敏捷执行』这条记录了。
测试一样的执行代号 >> 『执行代号』已经有『新增私有敏捷执行code』这条记录了。
- 测试创建敏捷私有执行
- 属性name @新增私有敏捷执行
- 属性type @sprint
- 测试创建敏捷公开执行
- 属性code @新增公开敏捷执行code
- 属性type @sprint
- 测试创建迭代团队分配
- 属性PO @user1
- 属性QD @user2
- 属性PM @user3
- 属性RD @user4
- 测试不输入项目第project条的0属性 @『所属项目』不能为空。
- 测试不输入执行名称第name条的0属性 @『项目名称』不能为空。
- 测试不输入执行代号第code条的0属性 @『项目代号』不能为空。
- 测试一样的执行名称第name条的0属性 @『项目名称』已经有『新增私有敏捷执行』这条记录了。如果您确定该记录已删除,请到后台-系统设置-回收站还原。
- 测试一样的执行代号第code条的0属性 @『项目代号』已经有『新增私有敏捷执行code』这条记录了。如果您确定该记录已删除,请到后台-系统设置-回收站还原。
*/
+2
View File
@@ -23,6 +23,8 @@ title=测试executionModel->fixOrderTest();
timeout=0
cid=1
- 重置order第3条的order属性 @15
*/
$executionTester = new executionTest();
+4
View File
@@ -22,6 +22,10 @@ title=executionModel->getByID();
timeout=0
cid=1
- 根据executionID查找任务详情属性name @迭代1
- 根据executionID查找任务详情并替换图片链接属性name @迭代1
- 查询存在的执行 @0
*/
$execution = new executionTest();
+44 -16
View File
@@ -28,6 +28,34 @@ title=测试executionModel->getByProjectTest();
timeout=0
cid=1
- 敏捷项目执行列表查询
- 第5条的project属性 @2
- 第5条的name属性 @迭代1
- 第5条的type属性 @sprint
- 瀑布项目执行列表查询
- 第6条的project属性 @3
- 第6条的name属性 @产品1/阶段1
- 第6条的type属性 @stage
- 看板项目执行列表查询
- 第7条的project属性 @4
- 第7条的name属性 @看板1
- 第7条的type属性 @kanban
- wait执行列表查询 @0
- doing执行列表查询
- 第7条的status属性 @doing
- 第7条的name属性 @看板1
- 执行列表2条查询 @2
- 执行列表10条查询 @3
- 敏捷项目执行键值对查询属性5 @项目1/迭代1
- 瀑布项目执行键值对查询属性6 @项目2/产品1/阶段1
- 看板项目执行键值对查询属性7 @项目3/看板1
- wait执行键值对查询 @0
- doing执行键值对查询属性7 @项目3/看板1
- 执行键值对2条查询 @2
- 执行键值对10条查询 @3
- 测试获取开发阶段 @0
- 测试获取开发阶段或id=7的执行 @1
*/
$projectIdList = array(0, 2, 3, 4);
@@ -39,19 +67,19 @@ $appendIdList = array(0, 7);
$count = array(0, 1);
$executionTester = new executionTest();
r($executionTester->getByProjectTest($projectIdList[1], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('5:project,name,type') && e('2,迭代1,sprint'); // 敏捷项目执行列表查询
r($executionTester->getByProjectTest($projectIdList[2], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('6:project,name,type') && e('3,阶段1,stage'); // 瀑布项目执行列表查询
r($executionTester->getByProjectTest($projectIdList[3], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('7:project,name,type') && e('4,看板1,kanban'); // 看板项目执行列表查询
r($executionTester->getByProjectTest($projectIdList[0], $status[1], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p() && e('0'); // wait执行列表查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('7:status,name') && e('doing,看板1'); // doing执行列表查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[1], $pairsList[0], $develList[0], $appendIdList[0], $count[1])) && p() && e('2'); // 执行列表2条查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[0], $develList[0], $appendIdList[0], $count[1])) && p() && e('3'); // 执行列表10条查询
r($executionTester->getByProjectTest($projectIdList[1], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('5') && e('项目1/迭代1'); // 敏捷项目执行键值对查询
r($executionTester->getByProjectTest($projectIdList[2], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('6') && e('项目2/阶段1'); // 瀑布项目执行键值对查询
r($executionTester->getByProjectTest($projectIdList[3], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('7') && e('项目3/看板1'); // 看板项目执行键值对查询
r($executionTester->getByProjectTest($projectIdList[0], $status[1], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p() && e('0'); // wait执行键值对查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('7') && e('项目3/看板1'); // doing执行键值对查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[1], $pairsList[1], $develList[0], $appendIdList[0], $count[1])) && p() && e('2'); // 执行键值对2条查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[0], $appendIdList[0], $count[1])) && p() && e('3'); // 执行键值对10条查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[1], $appendIdList[0], $count[1])) && p() && e('0'); // 测试获取开发阶段
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[1], $appendIdList[1], $count[1])) && p() && e('1'); // 测试获取开发阶段或id=7的执行
r($executionTester->getByProjectTest($projectIdList[1], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('5:project,name,type') && e('2,迭代1,sprint'); // 敏捷项目执行列表查询
r($executionTester->getByProjectTest($projectIdList[2], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('6:project,name,type') && e('3,产品1/阶段1,stage'); // 瀑布项目执行列表查询
r($executionTester->getByProjectTest($projectIdList[3], $status[0], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('7:project,name,type') && e('4,看板1,kanban'); // 看板项目执行列表查询
r($executionTester->getByProjectTest($projectIdList[0], $status[1], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p() && e('0'); // wait执行列表查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[0], $pairsList[0], $develList[0], $appendIdList[0], $count[0])) && p('7:status,name') && e('doing,看板1'); // doing执行列表查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[1], $pairsList[0], $develList[0], $appendIdList[0], $count[1])) && p() && e('2'); // 执行列表2条查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[0], $develList[0], $appendIdList[0], $count[1])) && p() && e('3'); // 执行列表10条查询
r($executionTester->getByProjectTest($projectIdList[1], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('5') && e('项目1/迭代1'); // 敏捷项目执行键值对查询
r($executionTester->getByProjectTest($projectIdList[2], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('6') && e('项目2/产品1/阶段1'); // 瀑布项目执行键值对查询
r($executionTester->getByProjectTest($projectIdList[3], $status[0], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('7') && e('项目3/看板1'); // 看板项目执行键值对查询
r($executionTester->getByProjectTest($projectIdList[0], $status[1], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p() && e('0'); // wait执行键值对查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[0], $pairsList[1], $develList[0], $appendIdList[0], $count[0])) && p('7') && e('项目3/看板1'); // doing执行键值对查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[1], $pairsList[1], $develList[0], $appendIdList[0], $count[1])) && p() && e('2'); // 执行键值对2条查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[0], $appendIdList[0], $count[1])) && p() && e('3'); // 执行键值对10条查询
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[1], $appendIdList[0], $count[1])) && p() && e('0'); // 测试获取开发阶段
r($executionTester->getByProjectTest($projectIdList[0], $status[2], $limit[2], $pairsList[1], $develList[1], $appendIdList[1], $count[1])) && p() && e('1'); // 测试获取开发阶段或id=7的执行
@@ -18,6 +18,9 @@ title=测试 executionModel->getLimitedExecution();
timeout=0
cid=1
- 判断管理员 @1
- 判断非管理员 @103
*/
global $app;
@@ -27,6 +27,33 @@ title=executionModel->getOrderedExecutions();
timeout=0
cid=1
- 敏捷项目wait状态执行查看
- 第5条的project属性 @2
- 第5条的status属性 @wait
- 第5条的type属性 @sprint
- 敏捷项目doing状态执行查看
- 第6条的project属性 @2
- 第6条的status属性 @doing
- 第6条的type属性 @sprint
- 瀑布项目wait状态执行查看 @0
- 瀑布项目doing状态执行查看 @0
- 看板项目wait状态执行查看
- 第9条的project属性 @4
- 第9条的status属性 @wait
- 第9条的type属性 @kanban
- 看板项目doing状态执行查看
- 第10条的project属性 @4
- 第10条的status属性 @doing
- 第10条的type属性 @kanban
- 敏捷项目wait状态执行统计 @1
- 敏捷项目doing状态执行统计 @1
- 瀑布项目wait状态执行统计 @0
- 瀑布项目doing状态执行统计 @0
- 看板项目wait状态执行统计 @1
- 看板项目doing状态执行统计 @1
- 敏捷项目done状态执行统计 @0
- 敏捷项目closed状态执行统计 @0
*/
$projectIDList = array(2, 3, 4);
@@ -30,6 +30,9 @@ title=测试executionModel->getPrevKanban();
timeout=0
cid=1
- 查询执行id=4数据 @empty
- 保存数据后查询执行id=4数据第wait条的0属性 @task1
*/
$executionTester = new executionTest();
@@ -50,6 +50,13 @@ title=测试executionModel->getTasks2ImportedTest();
timeout=0
cid=1
- 敏捷执行任务查看第1条的name属性 @任务1
- 瀑布执行任务查看第2条的type属性 @devel
- 看板执行任务查看第3条的status属性 @wait
- 敏捷执行任务统计 @4
- 敏捷执行任务统计 @3
- 敏捷执行任务统计 @3
*/
$executionIDList = array('3', '4', '5');
+16
View File
@@ -48,6 +48,22 @@ title=测试executionModel->linkCasesTest();
timeout=0
cid=1
- 敏捷执行关联用例
- 第0条的project属性 @3
- 第0条的product属性 @1
- 第0条的case属性 @1
- 瀑布执行关联用例
- 第0条的project属性 @4
- 第0条的product属性 @43
- 第0条的case属性 @2
- 看板执行关联用例
- 第0条的project属性 @5
- 第0条的product属性 @68
- 第0条的case属性 @3
- 敏捷执行关联用例统计 @3
- 瀑布执行关联用例统计 @3
- 看板执行关联用例统计 @3
*/
$executionIdList = array(3, 4, 5);
@@ -18,6 +18,20 @@ title=测试executionModel->processTasks();
timeout=0
cid=1
- 测试空数据 @0
- 测试处理迭代下的任务信息
- 第30条的id属性 @30
- 第30条的name属性 @开发任务40
- 测试处理阶段下的任务信息
- 第15条的id属性 @15
- 第15条的name属性 @开发任务25
- 测试处理看板下的任务信息
- 第27条的id属性 @27
- 第27条的name属性 @开发任务37
- 获取处理迭代下的任务数量 @13
- 获取处理阶段下的任务数量 @5
- 获取处理看板下的任务数量 @6
*/
$executionIdList = array(0, 2, 3, 4);
+17 -6
View File
@@ -19,13 +19,24 @@ su('admin');
/**
title=测试executionModel->putoffTest();
cid=1
pid=1
cid=0
wait执行延期 >> days,,5
敏捷执行延期 >> status,doing,wait
瀑布阶段延期 >> status,doing,wait
看板执行延期 >> status,doing,wait
- wait执行延期
- 第0条的field属性 @days
- 第0条的old属性 @0
- 第0条的new属性 @5
- 敏捷执行延期
- 第0条的field属性 @status
- 第0条的old属性 @doing
- 第0条的new属性 @wait
- 瀑布阶段延期
- 第0条的field属性 @status
- 第0条的old属性 @doing
- 第0条的new属性 @wait
- 看板执行延期
- 第0条的field属性 @status
- 第0条的old属性 @doing
- 第0条的new属性 @wait
*/
@@ -24,6 +24,9 @@ title=测试 executionModel::setProjectSession();
timeout=0
cid=1
- 执行存在的情况 @2
- 执行不存在的情况 @0
*/
$executionTester = new executionTest();
+13 -1
View File
@@ -16,6 +16,18 @@ su('admin');
title=测试executionModel->startTest();
cid=1
pid=1
- 敏捷执行开始
- 第status条的old属性 @wait
- 第status条的new属性 @doing
- 瀑布阶段开始
- 第status条的old属性 @wait
- 第status条的new属性 @doing
- 看板执行开始
- 第status条的old属性 @wait
- 第status条的new属性 @doing
- 子瀑布开启获取父瀑布状态属性status @doing
*/
$executionIDList = array(2, 3, 4, 5);
@@ -24,4 +36,4 @@ $execution = new executionTest();
r($execution->startTest($executionIDList[0])) && p('status:old,new') && e('wait,doing'); // 敏捷执行开始
r($execution->startTest($executionIDList[1])) && p('status:old,new') && e('wait,doing'); // 瀑布阶段开始
r($execution->startTest($executionIDList[2])) && p('status:old,new') && e('wait,doing'); // 看板执行开始
r($execution->startTest($executionIDList[3], array(), true)) && p('status') && e('doing'); // 子瀑布开启获取父瀑布状态
r($execution->startTest($executionIDList[3], array(), true)) && p('status') && e('doing'); // 子瀑布开启获取父瀑布状态
+25 -7
View File
@@ -18,13 +18,31 @@ title=测试executionModel->suspendTest();
cid=1
pid=1
wait敏捷执行挂起 >> status,wait,suspended
doing敏捷执行挂起 >> status,doing,suspended
wait瀑布执行挂起 >> status,wait,suspended
doing瀑布执行挂起 >> status,doing,suspended
wait看板执行挂起 >> status,wait,suspended
doing看板执行挂起 >> status,doing,suspended
挂起后再次挂起 >> 0
- wait敏捷执行挂起
- 第0条的field属性 @status
- 第0条的old属性 @wait
- 第0条的new属性 @suspended
- doing敏捷执行挂起
- 第0条的field属性 @status
- 第0条的old属性 @doing
- 第0条的new属性 @suspended
- wait瀑布执行挂起
- 第0条的field属性 @status
- 第0条的old属性 @wait
- 第0条的new属性 @suspended
- doing瀑布执行挂起
- 第0条的field属性 @status
- 第0条的old属性 @doing
- 第0条的new属性 @suspended
- wait看板执行挂起
- 第0条的field属性 @status
- 第0条的old属性 @wait
- 第0条的new属性 @suspended
- doing看板执行挂起
- 第0条的field属性 @status
- 第0条的old属性 @doing
- 第0条的new属性 @suspended
- 挂起后再次挂起 @0
*/