Merge branch 'autotest_ly' into 'master'
Add execution model See merge request easycorp/zentaopms!2090
This commit is contained in:
724
test/class/execution.class.php
Normal file
724
test/class/execution.class.php
Normal file
@@ -0,0 +1,724 @@
|
||||
<?php
|
||||
class executionTest
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel = $tester->loadModel('execution');
|
||||
}
|
||||
|
||||
public function getHour()
|
||||
{
|
||||
return date('Y-m-d');
|
||||
}
|
||||
|
||||
public function getReduceHour($dayNum)
|
||||
{
|
||||
return date('Y-m-d',strtotime("-$dayNum day"));
|
||||
}
|
||||
|
||||
public function createObject($param = array(), $project, $dayNum, $days)
|
||||
{
|
||||
$products = array('');
|
||||
$plans = array('');
|
||||
$whitelist = array('');
|
||||
$beginData = date('Y-m-d');
|
||||
$endData = date('Y-m-d',strtotime("+$dayNum day"));
|
||||
$delta = intval($dayNum) + 1;
|
||||
$createFields = array('project' => $project, 'name' => '', 'code' => '', 'begin' => $beginData, 'end' => $endData,
|
||||
'lifetime' => 'short', 'status' => 'wait', 'products' => $products, 'delta' => $delta, 'days' => $days,
|
||||
'plans' => $plans, 'team' => '', 'teams' => '0', 'PO' => '', 'QD' => '', 'PM' => '', 'RD' => '', 'whitelist' => '',
|
||||
'desc' => '', 'acl' => 'private');
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$objectID = $this->objectModel->create();
|
||||
unset($_POST);
|
||||
if(dao::isError())
|
||||
{
|
||||
return dao::getError();
|
||||
}
|
||||
else
|
||||
{
|
||||
$object = $this->objectModel->getByID($objectID);
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function updateObject($objectID, $param = array())
|
||||
{
|
||||
global $tester;
|
||||
$products = array('1','81','91');
|
||||
$object = $tester->dbh->query("SELECT `project`,`name`,`code`,`begin`,`end`,`days`,`lifetime`,`team`,`status`,`PO`,`QD`,`PM`,
|
||||
`RD`,`desc`,`acl` FROM zt_project WHERE id = $objectID ")->fetch();
|
||||
$object->products = $products;
|
||||
foreach($object as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$change = $this->objectModel->update($objectID);
|
||||
if($change == array()) $change = '没有数据更新';
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError())
|
||||
{
|
||||
return dao::getError();
|
||||
}
|
||||
else
|
||||
{
|
||||
return $change;
|
||||
}
|
||||
}
|
||||
|
||||
public function batchUpdateObject($param = array(), $executionID = '')
|
||||
{
|
||||
$executionIDList = array($executionID => $executionID);
|
||||
$codes = array($executionID => '');
|
||||
$name = array($executionID => '');
|
||||
$pms = array($executionID => '');
|
||||
$pos = array($executionID => '');
|
||||
$qds = array($executionID => '');
|
||||
$rds = array($executionID => '');
|
||||
$lifetimes = array($executionID => '');
|
||||
$statuses = array($executionID => '');
|
||||
$begins = array($executionID => date('Y-m-d'));
|
||||
$ends = array($executionID => date('Y-m-d',strtotime("+5 day")));
|
||||
$descs = array($executionID => '');
|
||||
$teams = array($executionID => '');
|
||||
$dayses = array($executionID => '');
|
||||
$createFields = array('executionIDList' => $executionIDList, 'names' => $name, 'codes' => $codes, 'PMs' => $pms, 'lifetimes' => $lifetimes,
|
||||
'begins' => $begins, 'ends' => $ends, 'descs' => $descs, 'statuses' => $statuses, 'teams'=>$teams, 'dayses' => $dayses,'POs' => $pos,
|
||||
'QDs' => $qds, 'RDs' => $rds);
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$object = $this->objectModel->batchUpdate();
|
||||
unset($_POST);
|
||||
|
||||
if(dao::isError())
|
||||
{
|
||||
return dao::getError();
|
||||
}
|
||||
else
|
||||
{
|
||||
$object = $object[$executionID];
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function startTest($executionID,$param = array())
|
||||
{
|
||||
$data = date('Y-m-d');
|
||||
$createFields = array( 'comment' => '开始描述测试', 'realBegan' => $data);
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$obj = $this->objectModel->start($executionID);
|
||||
unset($_POST);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
if ($error[0] = "此任务已被启动,不能重复启动!")
|
||||
{
|
||||
return $error[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
return $error;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $obj;
|
||||
}
|
||||
}
|
||||
|
||||
public function putoffTest($executionID, $param = array())
|
||||
{
|
||||
$begin = date('Y-m-d');
|
||||
$end = date('Y-m-d',strtotime("+5 day"));
|
||||
$createFields = array('status' => 'wait', 'days' => '5', 'comment' => '延期描述测试', 'begin' => $begin, 'end' => $end);
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$obj = $this->objectModel->putoff($executionID);
|
||||
unset($_POST);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $obj;
|
||||
}
|
||||
}
|
||||
|
||||
public function suspendTest($executionID, $param = array())
|
||||
{
|
||||
$createFields = array('status' => 'suspended', 'comment' => '挂起描述测试');
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$obj = $this->objectModel->suspend($executionID);
|
||||
unset($_POST);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $obj;
|
||||
}
|
||||
}
|
||||
|
||||
public function activateTest($executionID, $param = array())
|
||||
{
|
||||
self::suspendTest($executionID);
|
||||
$begin = date('Y-m-d');
|
||||
$end = date('Y-m-d',strtotime("+5 day"));
|
||||
$createFields = array('status' => 'doing', 'comment' => '激活描述测试', 'begin' => $begin, 'end' => $end);
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$obj = $this->objectModel->activate($executionID);
|
||||
unset($_POST);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $obj;
|
||||
}
|
||||
}
|
||||
|
||||
public function closeTest($executionID, $param = array())
|
||||
{
|
||||
$todate = date('Y-m-d');
|
||||
$createFields = array('status' => 'closed', 'comment' => '关闭描述测试', 'realEnd' => $todate);
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$obj = $this->objectModel->close($executionID);
|
||||
unset($_POST);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $obj;
|
||||
}
|
||||
}
|
||||
|
||||
public function getPairsTest($projectID,$count)
|
||||
{
|
||||
$object = $this->objectModel->getPairs($projectID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getByIDTest($executionID)
|
||||
{
|
||||
$object = $this->objectModel->getByID($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getByIdListTest($executionIdList)
|
||||
{
|
||||
$object = $this->objectModel->getByIdList($executionIdList);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getListTest($projectID, $type, $status, $limit, $productID, $count)
|
||||
{
|
||||
$object = $this->objectModel->getList($projectID, $type, $status, $limit, $productID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error[0];
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getInvolvedExecutionListTest($projectID, $limit, $productID, $count)
|
||||
{
|
||||
$object = $this->objectModel->getInvolvedExecutionList($projectID,$status = 'involved',$limit, $productID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error[0];
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getByProjectTest($projectID, $status, $limit, $count)
|
||||
{
|
||||
$object = $this->objectModel->getByProject($projectID, $status, $limit);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error[0];
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getIdListTest($projectID, $count)
|
||||
{
|
||||
$object = $this->objectModel->getIdList($projectID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error[0];
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getBranchesTest($executionID, $count)
|
||||
{
|
||||
$object = $this->objectModel->getBranches($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getTreeTest_bak($executionID, $count)
|
||||
{
|
||||
$object = $this->objectModel->getTree($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getRelatedExecutionsTest($executionID, $count)
|
||||
{
|
||||
$object = $this->objectModel->getRelatedExecutions($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getChildExecutionsTest($executionID, $count)
|
||||
{
|
||||
$object = $this->objectModel->getChildExecutions($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getProductGroupListTest($count)
|
||||
{
|
||||
$object = $this->objectModel->getProductGroupList();
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object[""];
|
||||
}
|
||||
}
|
||||
|
||||
public function getTasksTest($productID, $executionID, $browseType, $queryID, $moduleID, $sort, $count)
|
||||
{
|
||||
global $tester;
|
||||
$execution = $tester->dbh->query("select * from zt_project where id = $executionID")->fetch();
|
||||
$executions = array($executionID => $execution->name);
|
||||
$page = 'NULL';
|
||||
$object = $this->objectModel->getTasks($productID, $executionID, $executions, $browseType, $queryID, $moduleID, $sort, $page);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error[0];
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getDefaultManagersTest($executionID)
|
||||
{
|
||||
$object = $this->objectModel->getDefaultManagers($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getBranchByProductTest($productID, $count)
|
||||
{
|
||||
$object = $this->objectModel->getBranchByProduct($productID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getOrderedExecutionsTest($projectID, $status, $count)
|
||||
{
|
||||
$object = $this->objectModel->getOrderedExecutions($projectID,$status);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function getToImportTest($executionIds, $type, $count)
|
||||
{
|
||||
$object = $this->objectModel->getToImport($executionIds, $type);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function updateProductsTest($executionID,$param = array())
|
||||
{
|
||||
global $tester;
|
||||
$products = array();
|
||||
$branch = array();
|
||||
$createFields = array('products' => $products, 'branch' => $branch, 'post' => 'post');
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$this->objectModel->updateProducts($executionID);
|
||||
unset($_POST);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$productList = $tester->dbh->query("select * from zt_projectproduct where project = $executionID")->fetchAll();
|
||||
return $productList;
|
||||
}
|
||||
}
|
||||
|
||||
public function getTasks2ImportedTest($toExecution, $count)
|
||||
{
|
||||
$branches = $this->objectModel->getBranches($toExecution);
|
||||
|
||||
$object = $this->objectModel->getTasks2Imported($toExecution, $branches);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object[$toExecution]);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object[$toExecution];
|
||||
}
|
||||
}
|
||||
|
||||
public function importTaskTest($executionID, $count, $param = array())
|
||||
{
|
||||
global $tester;
|
||||
$tasks = array();
|
||||
$createFields = array('tasks' => $tasks);
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$this->objectModel->importTask($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
$taskList = $tester->dbh->query("select * from zt_task where execution = $executionID")->fetchAll();
|
||||
return count($taskList);
|
||||
}
|
||||
else
|
||||
{
|
||||
$taskList = $tester->dbh->query("select * from zt_task where execution = $executionID")->fetchAll();
|
||||
return $taskList;
|
||||
}
|
||||
}
|
||||
|
||||
public function statRelatedDataTest($executionID)
|
||||
{
|
||||
$object = $this->objectModel->statRelatedData($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function importBugTest($executionID, $count, $param = array())
|
||||
{
|
||||
$import = array();
|
||||
$id = array();
|
||||
$pri = array();
|
||||
$assignedTo = array();
|
||||
$estimate = array();
|
||||
$deadline = array();
|
||||
$createFields = array('import' => $import, 'id' => $id, 'pri' => $pri, 'assignedTo' => $assignedTo,
|
||||
'estimate' => $estimate, 'deadline' => $deadline);
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$object = $this->objectModel->importBug($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function updateChildsTest($executionID, $count, $param = array())
|
||||
{
|
||||
global $tester;
|
||||
$childs = array();
|
||||
$createFields = array('childs' => $childs);
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$object = $this->objectModel->updateChilds($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
$childExecutions = $tester->dbh->query("select id,name,type from zt_project where parent = $executionID")->fetchAll();
|
||||
return count($childExecutions);
|
||||
}
|
||||
else
|
||||
{
|
||||
$childExecutions = $tester->dbh->query("select id,name,type from zt_project where parent = $executionID")->fetchAll();
|
||||
return $childExecutions;
|
||||
}
|
||||
}
|
||||
|
||||
public function changeProjectTest($newProject, $oldProject, $executionID, $syncStories = 'no')
|
||||
{
|
||||
global $tester;
|
||||
$this->objectModel->changeProject($newProject, $oldProject, $executionID, $syncStories);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
else
|
||||
{
|
||||
$newExecution = $tester->dbh->query("select parent,path from zt_project where id = $executionID")->fetchAll();
|
||||
return $newExecution;
|
||||
}
|
||||
}
|
||||
|
||||
public function linkStoryTest($executionID, $count, $param = array())
|
||||
{
|
||||
global $tester;
|
||||
$stories = array();
|
||||
$products = array();
|
||||
$createFields = array('stories' => $stories, 'products' => $products);
|
||||
|
||||
foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
$tester->dbh->query("delete from zt_projectstory where project = $executionID");
|
||||
|
||||
$this->objectModel->linkStory($executionID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
$object = $tester->dbh->query("select * from zt_projectstory where project = $executionID")->fetchAll();
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
$object = $tester->dbh->query("select * from zt_projectstory where project = $executionID")->fetchAll();
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
public function linkCasesTest($executionID, $count, $productID, $storyID)
|
||||
{
|
||||
global $tester;
|
||||
$tester->dbh->query("delete from zt_projectcase where project = $executionID");
|
||||
|
||||
$this->objectModel->linkCases($executionID, $productID, $storyID);
|
||||
if(dao::isError())
|
||||
{
|
||||
$error = dao::getError();
|
||||
return $error;
|
||||
}
|
||||
elseif($count == "1")
|
||||
{
|
||||
$object = $tester->dbh->query("select * from zt_projectcase where project = $executionID")->fetchAll();
|
||||
return count($object);
|
||||
}
|
||||
else
|
||||
{
|
||||
$object = $tester->dbh->query("select * from zt_projectcase where project = $executionID")->fetchAll();
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,13 +8,13 @@ fields:
|
||||
range: 1-10000
|
||||
- field: product
|
||||
note: "产品ID"
|
||||
range: 1-100{3}
|
||||
range: 1-100{4}
|
||||
- field: branch
|
||||
note: "分支ID"
|
||||
range: 0
|
||||
- field: execution
|
||||
note: "执行ID"
|
||||
range: 101-700{3}
|
||||
range: 101-700{4}
|
||||
- field: lib
|
||||
note: "所属库"
|
||||
range: 0
|
||||
@@ -26,7 +26,7 @@ fields:
|
||||
range: "0"
|
||||
- field: story
|
||||
note: "相关需求"
|
||||
range: "0"
|
||||
range: 2-400:4{4}
|
||||
- field: storyVersion
|
||||
note: "需求版本"
|
||||
range: "1"
|
||||
|
||||
@@ -27,16 +27,11 @@ fields:
|
||||
- field: grade
|
||||
range: 1
|
||||
- field: parent
|
||||
range: 121-130{15},131-240{5}
|
||||
range: 11-40,41-70,71-100
|
||||
- field: path
|
||||
fields:
|
||||
- field: grade1
|
||||
prefix: ","
|
||||
postfix: ","
|
||||
range: 121-130{15},131-240{5}
|
||||
- field: self
|
||||
postfix: ","
|
||||
range: 241-10000
|
||||
prefix: ","
|
||||
postfix: ","
|
||||
range: 101-700
|
||||
- field: acl
|
||||
range: open{4},private{4}
|
||||
- field: whitelist
|
||||
|
||||
77
test/data/executionson.yaml
Normal file
77
test/data/executionson.yaml
Normal file
@@ -0,0 +1,77 @@
|
||||
title: table zt_execution
|
||||
author: Zhu Jinyong
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: name
|
||||
note: "名称"
|
||||
fields:
|
||||
- field: name1
|
||||
range: 子阶段
|
||||
- field: name2
|
||||
range: 1-10000
|
||||
- field: project
|
||||
range: 41-70
|
||||
- field: model
|
||||
range: []
|
||||
- field: type
|
||||
range: stage
|
||||
- field: status
|
||||
range: wait,doing
|
||||
- field: percent
|
||||
range: 0
|
||||
- field: auth
|
||||
range:
|
||||
- field: desc
|
||||
range: 1-10000
|
||||
prefix: "迭代描述"
|
||||
- field: grade
|
||||
range: 2
|
||||
- field: parent
|
||||
range: 131-160
|
||||
- field: path
|
||||
fields:
|
||||
- field: grade1
|
||||
prefix: ","
|
||||
postfix: ","
|
||||
range: 131-160
|
||||
- field: self
|
||||
postfix: ","
|
||||
range: 701-730
|
||||
- field: acl
|
||||
range: open{4},private{4}
|
||||
- field: PO
|
||||
range: admin
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
format: ""
|
||||
- field: PM
|
||||
range: admin
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
format: ""
|
||||
- field: QD
|
||||
range: admin
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
format: ""
|
||||
- field: RD
|
||||
range: admin
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
format: ""
|
||||
- field: whitelist
|
||||
froms:
|
||||
- from: common.user.v1.yaml
|
||||
use: empty{8}
|
||||
- from: common.user.v1.yaml
|
||||
use: empty{8}
|
||||
prefix: ","
|
||||
- from: common.user.v1.yaml
|
||||
use: one{8}
|
||||
prefix: ","
|
||||
- from: common.user.v1.yaml
|
||||
use: two{8}
|
||||
prefix: ","
|
||||
- from: common.user.v1.yaml
|
||||
use: three{8}
|
||||
prefix: ","
|
||||
52
test/data/exefather.yaml
Normal file
52
test/data/exefather.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
title: table zt_execution
|
||||
author: Zhu Jinyong
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: name
|
||||
note: "名称"
|
||||
fields:
|
||||
- field: name1
|
||||
range: 父阶段
|
||||
- field: name2
|
||||
range: 1-10000
|
||||
- field: project
|
||||
range: 41-70
|
||||
- field: model
|
||||
range: []
|
||||
- field: type
|
||||
range: stage
|
||||
- field: status
|
||||
range: wait,doing
|
||||
- field: percent
|
||||
range: 0
|
||||
- field: auth
|
||||
range:
|
||||
- field: desc
|
||||
range: 1-10000
|
||||
prefix: "迭代描述"
|
||||
- field: grade
|
||||
range: 1
|
||||
- field: parent
|
||||
range: -1
|
||||
- field: path
|
||||
prefix: ","
|
||||
postfix: ","
|
||||
range: 701-730
|
||||
- field: acl
|
||||
range: open{4},private{4}
|
||||
- field: whitelist
|
||||
froms:
|
||||
- from: common.user.v1.yaml
|
||||
use: empty{8}
|
||||
- from: common.user.v1.yaml
|
||||
use: empty{8}
|
||||
prefix: ","
|
||||
- from: common.user.v1.yaml
|
||||
use: one{8}
|
||||
prefix: ","
|
||||
- from: common.user.v1.yaml
|
||||
use: two{8}
|
||||
prefix: ","
|
||||
- from: common.user.v1.yaml
|
||||
use: three{8}
|
||||
prefix: ","
|
||||
323
test/data/moretask.yaml
Normal file
323
test/data/moretask.yaml
Normal file
@@ -0,0 +1,323 @@
|
||||
title: table zt_task
|
||||
desc: "任务"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "id"
|
||||
range: 601-1000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: parent
|
||||
note: "父任务"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: project
|
||||
note: "所属项目"
|
||||
range: 11-100{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: execution
|
||||
note: "所属执行"
|
||||
range: 101-700{3}
|
||||
- field: module
|
||||
note: "所属模块"
|
||||
range: 21-1820:3
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: story
|
||||
note: "相关需求"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: design
|
||||
note: "相关设计"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: storyVersion
|
||||
note: "需求版本"
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: designVersion
|
||||
note: "设计版本"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: fromBug
|
||||
note: "来源Bug"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: "任务名称"
|
||||
fields:
|
||||
- field: name1
|
||||
range: "更多任务"
|
||||
- field: name2
|
||||
range: 1-300
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: "任务类型"
|
||||
range: design,devel,test,study,discuss,ui,affair,misc
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: pri
|
||||
note: "优先级"
|
||||
range: 1-4
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: estimate
|
||||
note: "最初预计"
|
||||
range: 0-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: consumed
|
||||
note: "总计消耗"
|
||||
range: 3-12
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: left
|
||||
note: "预计剩余"
|
||||
range: 0-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: deadline
|
||||
note: "截止日期"
|
||||
range: "2022-02-27"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: status
|
||||
note: "任务状态"
|
||||
range: wait,doing,done,pause,cancel,closed
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: subStatus
|
||||
note: "子状态"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: color
|
||||
note: "标题颜色"
|
||||
from: common.color.v1.yaml
|
||||
use: color
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: mailto
|
||||
note: "抄送给"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
note: "任务描述"
|
||||
range: 1-10000
|
||||
prefix: "这里是任务描述"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: version
|
||||
note: "版本号"
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: openedBy
|
||||
note: "由谁创建"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: openedDate
|
||||
note: "创建日期"
|
||||
from: common.date.v1.yaml
|
||||
use: dateA
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: assignedTo
|
||||
note: "指派给"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: assignedDate
|
||||
note: "指派日期"
|
||||
from: common.date.v1.yaml
|
||||
use: dateA
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: estStarted
|
||||
note: "预计开始"
|
||||
range: "2022-01-27"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: realStarted
|
||||
note: "实际开始"
|
||||
from: common.date.v1.yaml
|
||||
use: dateB
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: finishedBy
|
||||
note: "由谁完成"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: finishedDate
|
||||
note: "完成日期"
|
||||
from: common.date.v1.yaml
|
||||
use: dateA
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: finishedList
|
||||
note: "完成者列表"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: canceledBy
|
||||
note: "由谁取消"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: canceledDate
|
||||
note: "取消日期"
|
||||
from: common.date.v1.yaml
|
||||
use: dateA
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: closedBy
|
||||
note: "由谁关闭"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: closedDate
|
||||
note: "关闭日期"
|
||||
from: common.date.v1.yaml
|
||||
use: dateA
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: realDuration
|
||||
note: "实际持续时长"
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: planDuration
|
||||
note: "计划持续时长"
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: closedReason
|
||||
note: "关闭原因"
|
||||
range: ""
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: lastEditedBy
|
||||
note: "最后修改者"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: lastEditedDate
|
||||
note: "最后修改时间"
|
||||
from: common.date.v1.yaml
|
||||
use: dateA
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: activatedDate
|
||||
note: "重新激活日期"
|
||||
from: common.date.v1.yaml
|
||||
use: dateB
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: deleted
|
||||
note: "是否删除"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -45,11 +45,15 @@ fields:
|
||||
range: 1-10000
|
||||
prefix: "project"
|
||||
- field: begin
|
||||
from: common.date.v1.yaml
|
||||
use: date
|
||||
range: "(-2M)-(+M):1D"
|
||||
type: timestamp
|
||||
format: "YY/MM/DD"
|
||||
postfix: "\t"
|
||||
- field: end
|
||||
from: common.date.v1.yaml
|
||||
use: date
|
||||
range: "(+1w)-(+2M):1D"
|
||||
type: timestamp
|
||||
format: "YY/MM/DD"
|
||||
postfix: "\t"
|
||||
- field: PO
|
||||
range:
|
||||
- field: PM
|
||||
|
||||
8
test/data/stakeholder.yaml
Normal file
8
test/data/stakeholder.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
title: zt_stakeholder
|
||||
desc: 干系人表
|
||||
version: 1.0
|
||||
fields:
|
||||
- field: objectID
|
||||
range: 11-100
|
||||
- field: objectType
|
||||
range: project
|
||||
@@ -26,7 +26,7 @@ fields:
|
||||
format: ""
|
||||
- field: module
|
||||
note: "所属模块"
|
||||
range: 0
|
||||
range: 1821-10000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
|
||||
75
test/data/storymodule.yaml
Normal file
75
test/data/storymodule.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
title: table zt_module
|
||||
desc: "模块"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "ID"
|
||||
range: 1821-10000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: root
|
||||
note: "根目录"
|
||||
range: 1-100{4}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: branch
|
||||
note: "分支"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: "模块名称"
|
||||
range: 1-10000
|
||||
prefix: "产品模块"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: parent
|
||||
note: "父ID"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: path
|
||||
note: "ID路径"
|
||||
range: 1821-10000
|
||||
prefix: ","
|
||||
postfix: ","
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: grade
|
||||
note: "等级"
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: order
|
||||
note: "排序"
|
||||
range: 10-100:10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: "对象类型"
|
||||
range: story
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: deleted
|
||||
note: "是否删除"
|
||||
range: 0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
52
test/data/userquery.yaml
Normal file
52
test/data/userquery.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
title: table zt_userquery
|
||||
desc: "用户查询"
|
||||
author: automated export
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "ID"
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: account
|
||||
note: "用户名"
|
||||
range: admin
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: module
|
||||
note: "模块"
|
||||
range: task
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: title
|
||||
note: "名称"
|
||||
range: 1-1000
|
||||
prefix: "这是搜索条件名称"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: form
|
||||
note: "表单字段"
|
||||
range: 'a:60:{s:9:\"fieldname\";s:0:\"\";s:11:\"fieldstatus\";s:0:\"\";s:9:\"fielddesc\";s:0:\"\";s:15:\"fieldassignedTo\";s:0:\"\";s:8:\"fieldpri\";s:1:\"0\";s:14:\"fieldexecution\";s:0:\"\";s:11:\"fieldmodule\";s:4:\"ZERO\";s:13:\"fieldestimate\";s:0:\"\";s:9:\"fieldleft\";s:0:\"\";s:13:\"fieldconsumed\";s:0:\"\";s:9:\"fieldtype\";s:0:\"\";s:12:\"fieldfromBug\";s:0:\"\";s:17:\"fieldclosedReason\";s:0:\"\";s:13:\"fieldopenedBy\";s:0:\"\";s:15:\"fieldfinishedBy\";s:0:\"\";s:13:\"fieldclosedBy\";s:0:\"\";s:13:\"fieldcancelBy\";s:1:\"0\";s:17:\"fieldlastEditedBy\";s:0:\"\";s:11:\"fieldmailto\";s:0:\"\";s:17:\"fieldfinishedList\";s:0:\"\";s:15:\"fieldopenedDate\";s:0:\"\";s:13:\"fielddeadline\";s:0:\"\";s:15:\"fieldestStarted\";s:0:\"\";s:16:\"fieldrealStarted\";s:0:\"\";s:17:\"fieldassignedDate\";s:0:\"\";s:17:\"fieldfinishedDate\";s:0:\"\";s:15:\"fieldclosedDate\";s:0:\"\";s:17:\"fieldcanceledDate\";s:0:\"\";s:19:\"fieldlastEditedDate\";s:0:\"\";s:7:\"fieldid\";s:0:\"\";s:15:\"fieldcanceledBy\";s:0:\"\";s:6:\"andOr1\";s:3:\"AND\";s:6:\"field1\";s:4:\"name\";s:9:\"operator1\";s:7:\"include\";s:6:\"value1\";s:2:\"aa\";s:6:\"andOr2\";s:3:\"and\";s:6:\"field2\";s:2:\"id\";s:9:\"operator2\";s:1:\"=\";s:6:\"value2\";s:0:\"\";s:6:\"andOr3\";s:3:\"and\";s:6:\"field3\";s:6:\"status\";s:9:\"operator3\";s:1:\"=\";s:6:\"value3\";s:0:\"\";s:10:\"groupAndOr\";s:3:\"and\";s:6:\"andOr4\";s:3:\"AND\";s:6:\"field4\";s:4:\"desc\";s:9:\"operator4\";s:7:\"include\";s:6:\"value4\";s:0:\"\";s:6:\"andOr5\";s:3:\"and\";s:6:\"field5\";s:10:\"assignedTo\";s:9:\"operator5\";s:1:\"=\";s:6:\"value5\";s:0:\"\";s:6:\"andOr6\";s:3:\"and\";s:6:\"field6\";s:3:\"pri\";s:9:\"operator6\";s:1:\"=\";s:6:\"value6\";s:1:\"0\";s:6:\"module\";s:4:\"task\";s:9:\"actionURL\";s:77:\"/index.php?m=execution&f=task&executionID=101&status=bySearch¶m=myQueryID\";s:10:\"groupItems\";s:1:\"3\";s:8:\"formType\";s:4:\"lite\";}'
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: sql
|
||||
note: "SQL条件"
|
||||
range: "(( 1 AND `name` LIKE '%aa%' ) AND ( 1 )) AND deleted = '0'"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: shortcut
|
||||
note: "显示在菜单栏"
|
||||
range: 0,1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -1,18 +1,22 @@
|
||||
<?php
|
||||
$builder = new stdclass();
|
||||
|
||||
$builder->company = array('rows' => 1, 'extends' => array('company'));
|
||||
$builder->user = array('rows' => 1000, 'extends' => array('user'));
|
||||
$builder->dept = array('rows' => 100, 'extends' => array('dept'));
|
||||
$builder->company = array('rows' => 1, 'extends' => array('company'));
|
||||
$builder->user = array('rows' => 1000, 'extends' => array('user'));
|
||||
$builder->dept = array('rows' => 100, 'extends' => array('dept'));
|
||||
|
||||
$builder->program = array('rows' => 10, 'extends' => array('project', 'program'));
|
||||
$builder->project = array('rows' => 90, 'extends' => array('project', 'project'));
|
||||
$builder->sprint = array('rows' => 600, 'extends' => array('project', 'execution'));
|
||||
|
||||
$builder->story = array('rows' => 400, 'extends' => array('story'));
|
||||
$builder->task = array('rows' => 600, 'extends' => array('task'));
|
||||
$builder->storymodule = array('rows' => 800, 'extends' => array('module','storymodule'));
|
||||
$builder->task = array('rows' => 600, 'extends' => array('task','task'));
|
||||
$builder->taskmore = array('rows' => 300, 'extends' => array('task','moretask'));
|
||||
$builder->taskspec = array('rows' => 600, 'extends' => array('taskspec'));
|
||||
$builder->taskmodule = array('rows' => 1800, 'extends' => array('module','taskmodule'));
|
||||
$builder->taskestimate = array('rows' => 600, 'extends' => array('taskestimate'));
|
||||
$builder->case = array('rows' => 300, 'extends' => array('case'));
|
||||
$builder->case = array('rows' => 400, 'extends' => array('case'));
|
||||
$builder->bug = array('rows' => 300, 'extends' => array('bug'));
|
||||
|
||||
$builder->product = array('rows' => 100, 'extends' => array('product'));
|
||||
@@ -21,7 +25,9 @@ $builder->productplan = array('rows' => 360, 'extends' => array('productplan'
|
||||
$builder->branch = array('rows' => 240, 'extends' => array('branch'));
|
||||
$builder->projectproduct = array('rows' => 200, 'extends' => array('projectproduct'));
|
||||
|
||||
$builder->team = array('rows' => 400, 'extends' => array('team'));
|
||||
$builder->team = array('rows' => 400, 'extends' => array('team'));
|
||||
$builder->stakeholder = array('rows' => 1, 'extends' => array('stakeholder'));
|
||||
$builder->stageson = array('rows' => 30, 'extends' => array('project', 'executionson'));
|
||||
|
||||
$builder->build = array('rows' => 8, 'extends' => array('build'));
|
||||
$builder->release = array('rows' => 8, 'extends' => array('release'));
|
||||
|
||||
@@ -42,6 +42,8 @@ class Processor
|
||||
$this->initTask();
|
||||
$this->initExecution();
|
||||
$this->initRelease();
|
||||
$this->initStakeholder();
|
||||
$this->initUserquery();
|
||||
|
||||
$this->dao->commit();
|
||||
}
|
||||
@@ -188,4 +190,43 @@ class Processor
|
||||
private function initRelease()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Init Stakeholder.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
private function initStakeholder()
|
||||
{
|
||||
/* Add stakeholder of project. */
|
||||
$projectProgramPairs = $this->dao->select('id,type')->from(TABLE_PROJECT)->where('type')->in('project,program')->fetchPairs();
|
||||
$accounts = $this->dao->select('id,account')->from(TABLE_USER)->fetchPairs();
|
||||
|
||||
foreach($projectProgramPairs as $id => $type)
|
||||
{
|
||||
$users = array($accounts[$id*10] ,$accounts[$id*10-1] ,$accounts[$id*10-2]);
|
||||
$data = new stdclass();
|
||||
foreach($users as $userID => $userAccount)
|
||||
{
|
||||
$data->objectID = $id;
|
||||
$data->objectType = $type;
|
||||
$data->user = $userAccount;
|
||||
$this->dao->insert(TABLE_STAKEHOLDER)->data($data)->exec();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Init userquery.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
private function initUserquery()
|
||||
{
|
||||
$this->dao->query("DELETE FROM `zt_userquery`;");
|
||||
$this->dao->query("INSERT INTO `zt_userquery` (`id`, `account`, `module`, `title`, `form`, `sql`, `shortcut`) VALUES (1, 'admin', 'task', '任务查询测试条件', 'a:60:{s:9:\"fieldname\";s:0:\"\";s:11:\"fieldstatus\";s:0:\"\";s:9:\"fielddesc\";s:0:\"\";s:15:\"fieldassignedTo\";s:0:\"\";s:8:\"fieldpri\";s:1:\"0\";s:14:\"fieldexecution\";s:0:\"\";s:11:\"fieldmodule\";s:4:\"ZERO\";s:13:\"fieldestimate\";s:0:\"\";s:9:\"fieldleft\";s:0:\"\";s:13:\"fieldconsumed\";s:0:\"\";s:9:\"fieldtype\";s:0:\"\";s:12:\"fieldfromBug\";s:0:\"\";s:17:\"fieldclosedReason\";s:0:\"\";s:13:\"fieldopenedBy\";s:0:\"\";s:15:\"fieldfinishedBy\";s:0:\"\";s:13:\"fieldclosedBy\";s:0:\"\";s:13:\"fieldcancelBy\";s:1:\"0\";s:17:\"fieldlastEditedBy\";s:0:\"\";s:11:\"fieldmailto\";s:0:\"\";s:17:\"fieldfinishedList\";s:0:\"\";s:15:\"fieldopenedDate\";s:0:\"\";s:13:\"fielddeadline\";s:0:\"\";s:15:\"fieldestStarted\";s:0:\"\";s:16:\"fieldrealStarted\";s:0:\"\";s:17:\"fieldassignedDate\";s:0:\"\";s:17:\"fieldfinishedDate\";s:0:\"\";s:15:\"fieldclosedDate\";s:0:\"\";s:17:\"fieldcanceledDate\";s:0:\"\";s:19:\"fieldlastEditedDate\";s:0:\"\";s:7:\"fieldid\";s:0:\"\";s:15:\"fieldcanceledBy\";s:0:\"\";s:6:\"andOr1\";s:3:\"AND\";s:6:\"field1\";s:4:\"name\";s:9:\"operator1\";s:7:\"include\";s:6:\"value1\";s:2:\"aa\";s:6:\"andOr2\";s:3:\"and\";s:6:\"field2\";s:2:\"id\";s:9:\"operator2\";s:1:\"=\";s:6:\"value2\";s:0:\"\";s:6:\"andOr3\";s:3:\"and\";s:6:\"field3\";s:6:\"status\";s:9:\"operator3\";s:1:\"=\";s:6:\"value3\";s:0:\"\";s:10:\"groupAndOr\";s:3:\"and\";s:6:\"andOr4\";s:3:\"AND\";s:6:\"field4\";s:4:\"desc\";s:9:\"operator4\";s:7:\"include\";s:6:\"value4\";s:0:\"\";s:6:\"andOr5\";s:3:\"and\";s:6:\"field5\";s:10:\"assignedTo\";s:9:\"operator5\";s:1:\"=\";s:6:\"value5\";s:0:\"\";s:6:\"andOr6\";s:3:\"and\";s:6:\"field6\";s:3:\"pri\";s:9:\"operator6\";s:1:\"=\";s:6:\"value6\";s:1:\"0\";s:6:\"module\";s:4:\"task\";s:9:\"actionURL\";s:77:\"/index.php?m=execution&f=task&executionID=101&status=bySearch¶m=myQueryID\";s:10:\"groupItems\";s:1:\"3\";s:8:\"formType\";s:4:\"lite\";}', '(( 1 AND `name` LIKE \'%11%\' ) AND ( 1 )) AND deleted = \'0\'', '0');");
|
||||
$this->dao->query("INSERT INTO `zt_userquery` (`id`, `account`, `module`, `title`, `form`, `sql`, `shortcut`) VALUES (2, 'admin', 'executionStory', '需求查找条件', 'a:56:{s:10:\"fieldtitle\";s:0:\"\";s:13:\"fieldkeywords\";s:0:\"\";s:11:\"fieldstatus\";s:0:\"\";s:10:\"fieldstage\";s:0:\"\";s:8:\"fieldpri\";s:1:\"0\";s:12:\"fieldproduct\";s:1:\"0\";s:11:\"fieldbranch\";s:0:\"\";s:11:\"fieldmodule\";s:4:\"ZERO\";s:9:\"fieldplan\";s:0:\"\";s:13:\"fieldestimate\";s:0:\"\";s:11:\"fieldsource\";s:0:\"\";s:15:\"fieldsourceNote\";s:0:\"\";s:12:\"fieldfromBug\";s:0:\"\";s:13:\"fieldopenedBy\";s:0:\"\";s:15:\"fieldreviewedBy\";s:0:\"\";s:15:\"fieldassignedTo\";s:0:\"\";s:13:\"fieldclosedBy\";s:0:\"\";s:17:\"fieldlastEditedBy\";s:0:\"\";s:11:\"fieldmailto\";s:0:\"\";s:17:\"fieldclosedReason\";s:0:\"\";s:12:\"fieldversion\";s:0:\"\";s:15:\"fieldopenedDate\";s:0:\"\";s:17:\"fieldreviewedDate\";s:0:\"\";s:17:\"fieldassignedDate\";s:0:\"\";s:15:\"fieldclosedDate\";s:0:\"\";s:19:\"fieldlastEditedDate\";s:0:\"\";s:7:\"fieldid\";s:0:\"\";s:6:\"andOr1\";s:3:\"AND\";s:6:\"field1\";s:5:\"title\";s:9:\"operator1\";s:7:\"include\";s:6:\"value1\";s:3:\"362\";s:6:\"andOr2\";s:3:\"and\";s:6:\"field2\";s:2:\"id\";s:9:\"operator2\";s:1:\"=\";s:6:\"value2\";s:0:\"\";s:6:\"andOr3\";s:3:\"and\";s:6:\"field3\";s:8:\"keywords\";s:9:\"operator3\";s:7:\"include\";s:6:\"value3\";s:0:\"\";s:10:\"groupAndOr\";s:3:\"and\";s:6:\"andOr4\";s:3:\"AND\";s:6:\"field4\";s:5:\"stage\";s:9:\"operator4\";s:1:\"=\";s:6:\"value4\";s:0:\"\";s:6:\"andOr5\";s:3:\"and\";s:6:\"field5\";s:6:\"status\";s:9:\"operator5\";s:1:\"=\";s:6:\"value5\";s:0:\"\";s:6:\"andOr6\";s:3:\"and\";s:6:\"field6\";s:3:\"pri\";s:9:\"operator6\";s:1:\"=\";s:6:\"value6\";s:1:\"0\";s:6:\"module\";s:14:\"executionStory\";s:9:\"actionURL\";s:95:\"/index.php?m=execution&f=story&executionID=101&orderBy=pri_desc&type=bySearch&queryID=myQueryID\";s:10:\"groupItems\";s:1:\"3\";s:8:\"formType\";s:4:\"lite\";}', '(( 1 AND `title` LIKE \'%362%\' ) AND ( 1 ))', '0');");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,43 +5,42 @@ version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
note: "ID"
|
||||
range: 1-10000
|
||||
range: 1
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: account
|
||||
note: "用户名"
|
||||
from: common.user.v1.yaml
|
||||
use: user
|
||||
range: admin
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: module
|
||||
note: "模块"
|
||||
range: task,story,bug
|
||||
range: task
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: title
|
||||
note: "名称"
|
||||
range: 1-10000
|
||||
range: 1-1000
|
||||
prefix: "这是搜索条件名称"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: form
|
||||
note: "表单字段"
|
||||
range: 1-10000
|
||||
range: 'a:60:{s:9:"fieldname";s:0:"";s:11:"fieldstatus";s:0:"";s:9:"fielddesc";s:0:"";s:15:"fieldassignedTo";s:0:"";s:8:"fieldpri";s:1:"0";s:14:"fieldexecution";s:0:"";s:11:"fieldmodule";s:4:"ZERO";s:13:"fieldestimate";s:0:"";s:9:"fieldleft";s:0:"";s:13:"fieldconsumed";s:0:"";s:9:"fieldtype";s:0:"";s:12:"fieldfromBug";s:0:"";s:17:"fieldclosedReason";s:0:"";s:13:"fieldopenedBy";s:0:"";s:15:"fieldfinishedBy";s:0:"";s:13:"fieldclosedBy";s:0:"";s:13:"fieldcancelBy";s:1:"0";s:17:"fieldlastEditedBy";s:0:"";s:11:"fieldmailto";s:0:"";s:17:"fieldfinishedList";s:0:"";s:15:"fieldopenedDate";s:0:"";s:13:"fielddeadline";s:0:"";s:15:"fieldestStarted";s:0:"";s:16:"fieldrealStarted";s:0:"";s:17:"fieldassignedDate";s:0:"";s:17:"fieldfinishedDate";s:0:"";s:15:"fieldclosedDate";s:0:"";s:17:"fieldcanceledDate";s:0:"";s:19:"fieldlastEditedDate";s:0:"";s:7:"fieldid";s:0:"";s:15:"fieldcanceledBy";s:0:"";s:6:"andOr1";s:3:"AND";s:6:"field1";s:4:"name";s:9:"operator1";s:7:"include";s:6:"value1";s:2:"aa";s:6:"andOr2";s:3:"and";s:6:"field2";s:2:"id";s:9:"operator2";s:1:"=";s:6:"value2";s:0:"";s:6:"andOr3";s:3:"and";s:6:"field3";s:6:"status";s:9:"operator3";s:1:"=";s:6:"value3";s:0:"";s:10:"groupAndOr";s:3:"and";s:6:"andOr4";s:3:"AND";s:6:"field4";s:4:"desc";s:9:"operator4";s:7:"include";s:6:"value4";s:0:"";s:6:"andOr5";s:3:"and";s:6:"field5";s:10:"assignedTo";s:9:"operator5";s:1:"=";s:6:"value5";s:0:"";s:6:"andOr6";s:3:"and";s:6:"field6";s:3:"pri";s:9:"operator6";s:1:"=";s:6:"value6";s:1:"0";s:6:"module";s:4:"task";s:9:"actionURL";s:77:"/index.php?m=execution&f=task&executionID=101&status=bySearch¶m=myQueryID";s:10:"groupItems";s:1:"3";s:8:"formType";s:4:"lite";}'
|
||||
prefix: "json格式的表单数据"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: sql
|
||||
note: "SQL条件"
|
||||
range: 1-10000
|
||||
range: "(( 1 AND `name` LIKE '%aa%' ) AND ( 1 )) AND deleted = '0'"
|
||||
prefix: "SQL查询条件"
|
||||
postfix: ""
|
||||
loop: 0
|
||||
|
||||
32
test/model/execution/activate.php
Executable file
32
test/model/execution/activate.php
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->activateTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行激活 >> status,suspended,doing
|
||||
瀑布执行激活 >> status,suspended,doing
|
||||
看板执行激活 >> status,suspended,doing
|
||||
修改激活时间 >> begin
|
||||
修改顺延 >> begin
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('105', '136', '165', '106', '107');
|
||||
$readjustTask = array('readjustTime' => '1', 'readjustTask' => '1');
|
||||
$readjustTime = array('readjustTime' => '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
//var_dump($execution->activateTest($executionIDList[4],$readjustTask ));die;
|
||||
r($execution->activateTest($executionIDList[0])) && p('0:field,old,new') && e('status,suspended,doing'); // 敏捷执行激活
|
||||
r($execution->activateTest($executionIDList[1])) && p('0:field,old,new') && e('status,suspended,doing'); // 瀑布执行激活
|
||||
r($execution->activateTest($executionIDList[2])) && p('0:field,old,new') && e('status,suspended,doing'); // 看板执行激活
|
||||
r($execution->activateTest($executionIDList[3],$readjustTime)) && p('1:field') && e('begin'); // 修改激活时间
|
||||
r($execution->activateTest($executionIDList[4],$readjustTask)) && p('1:field') && e('begin'); // 修改顺延
|
||||
system("./ztest init");
|
||||
33
test/model/execution/batchUpdate.php
Executable file
33
test/model/execution/batchUpdate.php
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->batchUpdate();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试批量修改任务 >> name,迭代1,批量修改执行一
|
||||
测试name为空 >> 『name』不能为空。
|
||||
|
||||
*/
|
||||
|
||||
$executionID = '101';
|
||||
$name = array($executionID => '批量修改执行一');
|
||||
$code = array($executionID => '批量修改执行一code');
|
||||
$emptycode = array($executionID => '');
|
||||
$pms = array($executionID => 'outside100');
|
||||
$lifetimes = array($executionID => 'short');
|
||||
$statuses = array($executionID => 'doing');
|
||||
$dayses = array($executionID => '5');
|
||||
|
||||
$normal = array('names' => $name, 'statuses'=> $statuses, 'codes' => $code, 'PMs' => $pms, 'lifetimes' => $lifetimes, 'dayses' => $dayses);
|
||||
$noName = array('statuses'=> $statuses, 'codes' => $code, 'PMs' => $pms, 'lifetimes' => $lifetimes, 'dayses' => $dayses);
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->batchUpdateObject($normal, $executionID)) && p('0:field,old,new') && e('name,迭代1,批量修改执行一'); // 测试批量修改任务
|
||||
r($execution->batchUpdateObject($noName, $executionID)) && p() && e('『name』不能为空。'); // 测试name为空
|
||||
system("./ztest init");
|
||||
28
test/model/execution/changeProject.php
Executable file
28
test/model/execution/changeProject.php
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->changeProjectTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试修改敏捷执行关联项目 >> 41
|
||||
测试修改瀑布执行关联项目 >> ,11,131,
|
||||
测试修改看板执行关联项目 >> 41
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
$oldProjectIDlist = array('11', '41', '71');
|
||||
$newProjectIDlist = array('11', '41', '71');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->changeProjectTest($newProjectIDlist[1],$oldProjectIDlist[0],$executionIDList[0])) && p('0:parent') && e('41'); // 测试修改敏捷执行关联项目
|
||||
r($execution->changeProjectTest($newProjectIDlist[0],$oldProjectIDlist[1],$executionIDList[1])) && p('0:path') && e(',11,131,'); // 测试修改瀑布执行关联项目
|
||||
r($execution->changeProjectTest($newProjectIDlist[1],$oldProjectIDlist[2],$executionIDList[2])) && p('0:parent') && e('41'); // 测试修改看板执行关联项目
|
||||
|
||||
system("./ztest init");
|
||||
28
test/model/execution/close.php
Executable file
28
test/model/execution/close.php
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->closeTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关闭 >> status,wait,closed
|
||||
瀑布执行关闭 >> status,doing,closed
|
||||
看板执行关闭 >> status,doing,closed
|
||||
不输入实际完成时间校验 >> 『realEnd』不能为空。
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('109', '138', '168');
|
||||
$noRealEnd = array('realEnd' => '');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->closeTest($executionIDList[0])) && p('0:field,old,new') && e('status,wait,closed'); // 敏捷执行关闭
|
||||
r($execution->closeTest($executionIDList[1])) && p('0:field,old,new') && e('status,doing,closed'); // 瀑布执行关闭
|
||||
r($execution->closeTest($executionIDList[2])) && p('0:field,old,new') && e('status,doing,closed'); // 看板执行关闭
|
||||
r($execution->closeTest($executionIDList[1],$noRealEnd)) && p('realEnd:0') && e('『realEnd』不能为空。'); // 不输入实际完成时间校验
|
||||
system("./ztest init");
|
||||
64
test/model/execution/create.php
Executable file
64
test/model/execution/create.php
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->create();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试创建敏捷私有执行 >> 新增私有敏捷执行,sprint
|
||||
测试创建敏捷公开执行 >> 新增公开敏捷执行code,sprint
|
||||
测试创建瀑布私有执行 >> 新增私有瀑布执行,stage
|
||||
测试创建瀑布公开执行 >> 新增公开瀑布执行code,stage
|
||||
测试创建看板私有执行 >> 新增私有看板执行,kanban
|
||||
测试创建看板公开执行 >> 新增公开看板执行code,kanban
|
||||
测试创建迭代团队分配 >> pd58,pd72,dev10,dev10
|
||||
测试不输入项目 >> 所属项目不能为空。
|
||||
测试不输入产品 >> 关联产品不能为空!
|
||||
测试不输入执行名称 >> 『执行名称』不能为空。
|
||||
测试不输入执行代号 >> 『执行代号』不能为空。
|
||||
测试一样的执行名称 >> 『执行名称』已经有『新增私有敏捷执行』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
|
||||
测试一样的执行代号 >> 『执行代号』已经有『新增私有敏捷执行code』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
|
||||
|
||||
*/
|
||||
|
||||
$task = new executionTest();
|
||||
|
||||
$projectIDList = array('11', '12', '41', '71');
|
||||
$dayNum = '6';
|
||||
$days = '5';
|
||||
$products = array('1', '0');
|
||||
|
||||
$prvExecution = array('name' => '新增私有敏捷执行', 'code' => '新增私有敏捷执行code', 'products' => $products);
|
||||
$openExecution = array('name' => '新增公开敏捷执行', 'code' => '新增公开敏捷执行code', 'products' => $products, 'acl' => 'open');
|
||||
$prvExecution_waterfall = array('name' => '新增私有瀑布执行', 'code' => '新增私有瀑布执行code', 'products' => $products);
|
||||
$openExecution_waterfall = array('name' => '新增公开瀑布执行', 'code' => '新增公开瀑布执行code', 'products' => $products, 'acl' => 'open');
|
||||
$prvExecution_kanban = array('name' => '新增私有看板执行', 'code' => '新增私有看板执行code', 'products' => $products);
|
||||
$openExecution_kanban = array('name' => '新增公开看板执行', 'code' => '新增公开看板执行code', 'products' => $products, 'acl' => 'open');
|
||||
$teamExecution = array('name' => '新增团队执行', 'code' => '新增团队执行code', 'products' => $products, 'PO' => 'pd58' ,'QD' => 'pd72', 'PM' => 'dev10', 'RD' => 'dev10');
|
||||
$noProjectID = array('name' => '新增私有敏捷执行', 'code' => '新增私有敏捷执行code', 'products' => $products);
|
||||
$noProductID = array('name' => '新增私有敏捷执行', 'code' => '新增私有敏捷执行code');
|
||||
$noName = array('name' => '', 'code' => '名称校验code', 'products' => $products);
|
||||
$noCode = array('name' => 'code校验', 'code' => '', 'products' => $products);
|
||||
$equallyName = array('name' => '新增私有敏捷执行', 'code' => '一样名称校验code', 'products' => $products);
|
||||
$equallyCode = array('name' => '一样code校验', 'code' => '新增私有敏捷执行code', 'products' => $products);
|
||||
|
||||
r($task->createObject($prvExecution, $projectIDList[1], $dayNum, $days)) && p('name,type') && e('新增私有敏捷执行,sprint'); // 测试创建敏捷私有执行
|
||||
r($task->createObject($openExecution, $projectIDList[1], $dayNum, $days)) && p('code,type') && e('新增公开敏捷执行code,sprint'); // 测试创建敏捷公开执行
|
||||
r($task->createObject($prvExecution_waterfall, $projectIDList[2], $dayNum, $days)) && p('name,type') && e('新增私有瀑布执行,stage'); // 测试创建瀑布私有执行
|
||||
r($task->createObject($openExecution_waterfall, $projectIDList[2], $dayNum, $days)) && p('code,type') && e('新增公开瀑布执行code,stage'); // 测试创建瀑布公开执行
|
||||
r($task->createObject($prvExecution_kanban, $projectIDList[3], $dayNum, $days)) && p('name,type') && e('新增私有看板执行,kanban'); // 测试创建看板私有执行
|
||||
r($task->createObject($openExecution_kanban, $projectIDList[3], $dayNum, $days)) && p('code,type') && e('新增公开看板执行code,kanban'); // 测试创建看板公开执行
|
||||
r($task->createObject($teamExecution, $projectIDList[1], $dayNum, $days)) && p('PO,QD,PM,RD') && e('pd58,pd72,dev10,dev10'); // 测试创建迭代团队分配
|
||||
r($task->createObject($prvExecution, '', $dayNum, $days)) && p('message:0') && e('所属项目不能为空。'); // 测试不输入项目
|
||||
r($task->createObject($noProductID, $projectIDList[1], $dayNum, $days)) && p('message:0') && e('关联产品不能为空!'); // 测试不输入产品
|
||||
r($task->createObject($noName, $projectIDList[1], $dayNum, $days)) && p('name:0') && e('『执行名称』不能为空。'); // 测试不输入执行名称
|
||||
r($task->createObject($noCode, $projectIDList[1], $dayNum, $days)) && p('code:0') && e('『执行代号』不能为空。'); // 测试不输入执行代号
|
||||
r($task->createObject($equallyName, $projectIDList[1], $dayNum, $days)) && p('name:0') && e('『执行名称』已经有『新增私有敏捷执行』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); // 测试一样的执行名称
|
||||
r($task->createObject($equallyCode, $projectIDList[1], $dayNum, $days)) && p('code:0') && e('『执行代号』已经有『新增私有敏捷执行code』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); // 测试一样的执行代号
|
||||
|
||||
system("./ztest init");
|
||||
25
test/model/execution/getBranchByProduct.php
Executable file
25
test/model/execution/getBranchByProduct.php
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=executionModel->getBranchByProduct();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
正常产品分支统计 >> 0
|
||||
分支产品分支查看 >> 分支2
|
||||
分支产品分支统计 >> 1
|
||||
|
||||
*/
|
||||
|
||||
$productIDList = array('1', '41');
|
||||
$count = array('0', '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getBranchByProductTest($productIDList[0],$count[1])) && p() && e('0'); //正常产品分支统计
|
||||
r($execution->getBranchByProductTest($productIDList[1],$count[0])) && p('41:2') && e('分支2'); //分支产品分支查看
|
||||
r($execution->getBranchByProductTest($productIDList[1],$count[1])) && p() && e('1'); //分支产品分支统计
|
||||
36
test/model/execution/getBranches.php
Executable file
36
test/model/execution/getBranches.php
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getBranchesTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷项目下根据执行查询产品分支 >> 0,101,102
|
||||
瀑布项目下根据执行查询产品分支 >> 0,11,12
|
||||
看板项目下根据执行查询产品分支 >> 0,33,34
|
||||
非分支产品执行查询产品分支 >> 0
|
||||
敏捷执行关联产品分支统计 >> 3
|
||||
瀑布执行关联产品分支统计 >> 2
|
||||
看板执行关联产品分支统计 >> 2
|
||||
正常产品分支统计 >> 2
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101','146', '617', '121');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
//var_dump($execution->getBranchesTest($executionIDList[3],$count[0]));die;
|
||||
r($execution->getBranchesTest($executionIDList[0],$count[0])) && p('91') && e('0,101,102'); // 敏捷项目下根据执行查询产品分支
|
||||
r($execution->getBranchesTest($executionIDList[1],$count[0])) && p('46') && e('0,11,12'); // 瀑布项目下根据执行查询产品分支
|
||||
r($execution->getBranchesTest($executionIDList[2],$count[0])) && p('57') && e('0,33,34'); // 看板项目下根据执行查询产品分支
|
||||
r($execution->getBranchesTest($executionIDList[3],$count[0])) && p('21') && e('0'); // 非分支产品执行查询产品分支
|
||||
r($execution->getBranchesTest($executionIDList[0],$count[1])) && p() && e('3'); // 敏捷执行关联产品分支统计
|
||||
r($execution->getBranchesTest($executionIDList[1],$count[1])) && p() && e('2'); // 瀑布执行关联产品分支统计
|
||||
r($execution->getBranchesTest($executionIDList[2],$count[1])) && p() && e('2'); // 看板执行关联产品分支统计
|
||||
r($execution->getBranchesTest($executionIDList[3],$count[1])) && p() && e('2'); // 正常产品分支统计
|
||||
20
test/model/execution/getByID.php
Executable file
20
test/model/execution/getByID.php
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=executionModel->getByID();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
根据executionID查找任务详情 >> 迭代1
|
||||
|
||||
*/
|
||||
|
||||
$executionID = '101';
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getByIDTest($executionID)) && p('name') && e('迭代1'); //根据executionID查找任务详情
|
||||
24
test/model/execution/getByIdList.php
Executable file
24
test/model/execution/getByIdList.php
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getByIdListTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷项目查询 >> 迭代1
|
||||
瀑布项目查询 >> stage
|
||||
看板项目查询 >> project61
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getByIdListTest($executionIDList)) && p('101:name') && e('迭代1'); // 敏捷项目查询
|
||||
r($execution->getByIdListTest($executionIDList)) && p('131:type') && e('stage'); // 瀑布项目查询
|
||||
r($execution->getByIdListTest($executionIDList)) && p('161:code') && e('project61'); // 看板项目查询
|
||||
35
test/model/execution/getByProject.php
Executable file
35
test/model/execution/getByProject.php
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getByProjectTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷项目执行列表查询 >> 11,迭代1
|
||||
瀑布项目执行列表查询 >> 41,已关闭的正常产品31/阶段31/子阶段1,stage
|
||||
看板项目执行列表查询 >> 71,看板61,kanban
|
||||
wait执行列表查询 >> wait,阶段581
|
||||
doing执行列表查询 >> doing,阶段582
|
||||
执行列表2条查询 >> 2
|
||||
执行列表10条查询 >> 10
|
||||
|
||||
*/
|
||||
|
||||
$projectIDList = array('0', '11', '41', '71');
|
||||
$status = array('all', 'wait', 'doing');
|
||||
$limit = array('0', '2', '10');
|
||||
$count = array('0', '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getByProjectTest($projectIDList[1],$status[0],$limit[0],$count[0])) && p('101:project,name') && e('11,迭代1'); // 敏捷项目执行列表查询
|
||||
r($execution->getByProjectTest($projectIDList[2],$status[0],$limit[0],$count[0])) && p('701:project,name,type') && e('41,已关闭的正常产品31/阶段31/子阶段1,stage'); // 瀑布项目执行列表查询
|
||||
r($execution->getByProjectTest($projectIDList[3],$status[0],$limit[0],$count[0])) && p('161:project,name,type') && e('71,看板61,kanban'); // 看板项目执行列表查询
|
||||
r($execution->getByProjectTest($projectIDList[0],$status[1],$limit[0],$count[0])) && p('681:status,name') && e('wait,阶段581'); // wait执行列表查询
|
||||
r($execution->getByProjectTest($projectIDList[0],$status[2],$limit[0],$count[0])) && p('682:status,name') && e('doing,阶段582'); // doing执行列表查询
|
||||
r($execution->getByProjectTest($projectIDList[0],$status[1],$limit[1],$count[1])) && p() && e('2'); // 执行列表2条查询
|
||||
r($execution->getByProjectTest($projectIDList[0],$status[2],$limit[2],$count[1])) && p() && e('10'); // 执行列表10条查询
|
||||
23
test/model/execution/getChildExecutions.php
Executable file
23
test/model/execution/getChildExecutions.php
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getChildExecutionsTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询子阶段 >> 子阶段1
|
||||
查询子阶段数量 >> 1
|
||||
|
||||
*/
|
||||
|
||||
$executionID = '131';
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getChildExecutionsTest($executionID,$count[0])) && p('701') && e('子阶段1'); // 查询子阶段
|
||||
r($execution->getChildExecutionsTest($executionID,$count[1])) && p() && e('1'); // 查询子阶段数量
|
||||
24
test/model/execution/getDefaultManagers.php
Executable file
24
test/model/execution/getDefaultManagers.php
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=executionModel->getDefaultManagers();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷查找访问人员 >> po1
|
||||
瀑布查找访问人员 >> test21
|
||||
看板查找访问人员 >> dev51
|
||||
|
||||
*/
|
||||
|
||||
$executionID = array('101', '131', '161');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getDefaultManagersTest($executionID[0])) && p('PO') && e('po1'); //敏捷查找访问人员
|
||||
r($execution->getDefaultManagersTest($executionID[1])) && p('QD') && e('test21'); //瀑布查找访问人员
|
||||
r($execution->getDefaultManagersTest($executionID[2])) && p('RD') && e('dev51'); //看板查找访问人员
|
||||
31
test/model/execution/getIdList.php
Executable file
31
test/model/execution/getIdList.php
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getIdListTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷项目下执行id查询 >> 101
|
||||
瀑布项目下执行id查询 >> 131
|
||||
看板项目下执行id查询 >> 161
|
||||
敏捷项目下执行id数量统计 >> 7
|
||||
敏捷项目下执行id数量统计 >> 8
|
||||
敏捷项目下执行id数量统计 >> 6
|
||||
|
||||
*/
|
||||
|
||||
$projectIDList = array('11', '41', '71');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getIdListTest($projectIDList[0],$count[0])) && p('101') && e('101'); // 敏捷项目下执行id查询
|
||||
r($execution->getIdListTest($projectIDList[1],$count[0])) && p('131') && e('131'); // 瀑布项目下执行id查询
|
||||
r($execution->getIdListTest($projectIDList[2],$count[0])) && p('161') && e('161'); // 看板项目下执行id查询
|
||||
r($execution->getIdListTest($projectIDList[0],$count[1])) && p() && e('7'); // 敏捷项目下执行id数量统计
|
||||
r($execution->getIdListTest($projectIDList[1],$count[1])) && p() && e('8'); // 敏捷项目下执行id数量统计
|
||||
r($execution->getIdListTest($projectIDList[2],$count[1])) && p() && e('6'); // 敏捷项目下执行id数量统计
|
||||
29
test/model/execution/getInvolvedExecutionList.php
Executable file
29
test/model/execution/getInvolvedExecutionList.php
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getInvolvedExecutionListTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
根据项目查询执行列表 >> 30,迭代20
|
||||
根据产品查询执行列表 >> 30,迭代20,sprint
|
||||
根据项目查询执行数量 >> 1
|
||||
根据产品查询执行数量 >> 1
|
||||
|
||||
*/
|
||||
|
||||
$projectIDList = array('0', '30');
|
||||
$productIDList = array('0', '10');
|
||||
$limit = array('0', '2', '10');
|
||||
$count = array('0', '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getInvolvedExecutionListTest($projectIDList[1],$limit[0],$productIDList[0],$count[0])) && p('120:project,name') && e('30,迭代20'); // 根据项目查询执行列表
|
||||
r($execution->getInvolvedExecutionListTest($projectIDList[0],$limit[0],$productIDList[1],$count[0])) && p('120:project,name,type') && e('30,迭代20,sprint'); // 根据产品查询执行列表
|
||||
r($execution->getInvolvedExecutionListTest($projectIDList[1],$limit[1],$productIDList[0],$count[1])) && p() && e('1'); // 根据项目查询执行数量
|
||||
r($execution->getInvolvedExecutionListTest($projectIDList[0],$limit[2],$productIDList[1],$count[1])) && p() && e('1'); // 根据产品查询执行数量
|
||||
45
test/model/execution/getList.php
Executable file
45
test/model/execution/getList.php
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getListTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷项目执行列表查询 >> 11,迭代1
|
||||
瀑布项目执行列表查询 >> 41,阶段31,stage
|
||||
看板项目执行列表查询 >> 71,看板61,kanban
|
||||
产品1执行列表查询 >> 迭代1
|
||||
敏捷执行列表查询 >> sprint,迭代561
|
||||
瀑布执行列表查询 >> stage,阶段591
|
||||
看板执行列表查询 >> kanban,看板531
|
||||
wait执行列表查询 >> wait,阶段581
|
||||
doing执行列表查询 >> doing,阶段582
|
||||
执行列表2条查询 >> 2
|
||||
执行列表10条查询 >> 10
|
||||
|
||||
*/
|
||||
|
||||
$projectIDList = array('0', '11', '41', '71');
|
||||
$productIDList = array('0', '1');
|
||||
$status = array('all', 'wait', 'doing');
|
||||
$type = array('all', 'sprint', 'stage', 'kanban');
|
||||
$limit = array('0', '2', '10');
|
||||
$count = array('0', '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getListTest($projectIDList[1],$type[0],$status[0],$limit[0],$productIDList[0],$count[0])) && p('101:project,name') && e('11,迭代1'); // 敏捷项目执行列表查询
|
||||
r($execution->getListTest($projectIDList[2],$type[0],$status[0],$limit[0],$productIDList[0],$count[0])) && p('131:project,name,type') && e('41,阶段31,stage'); // 瀑布项目执行列表查询
|
||||
r($execution->getListTest($projectIDList[3],$type[0],$status[0],$limit[0],$productIDList[0],$count[0])) && p('161:project,name,type') && e('71,看板61,kanban'); // 看板项目执行列表查询
|
||||
r($execution->getListTest($projectIDList[0],$type[0],$status[0],$limit[0],$productIDList[1],$count[0])) && p('101:name') && e('迭代1'); // 产品1执行列表查询
|
||||
r($execution->getListTest($projectIDList[0],$type[1],$status[0],$limit[2],$productIDList[0],$count[0])) && p('661:type,name') && e('sprint,迭代561'); // 敏捷执行列表查询
|
||||
r($execution->getListTest($projectIDList[0],$type[2],$status[0],$limit[2],$productIDList[0],$count[0])) && p('691:type,name') && e('stage,阶段591'); // 瀑布执行列表查询
|
||||
r($execution->getListTest($projectIDList[0],$type[3],$status[0],$limit[2],$productIDList[0],$count[0])) && p('631:type,name') && e('kanban,看板531'); // 看板执行列表查询
|
||||
r($execution->getListTest($projectIDList[0],$type[0],$status[1],$limit[0],$productIDList[0],$count[0])) && p('681:status,name') && e('wait,阶段581'); // wait执行列表查询
|
||||
r($execution->getListTest($projectIDList[0],$type[0],$status[2],$limit[0],$productIDList[0],$count[0])) && p('682:status,name') && e('doing,阶段582'); // doing执行列表查询
|
||||
r($execution->getListTest($projectIDList[0],$type[0],$status[1],$limit[1],$productIDList[0],$count[1])) && p() && e('2'); // 执行列表2条查询
|
||||
r($execution->getListTest($projectIDList[0],$type[0],$status[2],$limit[2],$productIDList[0],$count[1])) && p() && e('10'); // 执行列表10条查询
|
||||
49
test/model/execution/getOrderedExecutions.php
Executable file
49
test/model/execution/getOrderedExecutions.php
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=executionModel->getOrderedExecutions();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷项目wait状态执行查看 >> 11,wait,sprint
|
||||
敏捷项目doing状态执行查看 >> 12,doing,sprint
|
||||
瀑布项目wait状态执行查看 >> 41,wait,stage
|
||||
瀑布项目doing状态执行查看 >> 42,doing,stage
|
||||
看板项目wait状态执行查看 >> 71,wait,kanban
|
||||
看板项目doing状态执行查看 >> 72,doing,kanban
|
||||
敏捷项目wait状态执行统计 >> 7
|
||||
敏捷项目doing状态执行统计 >> 7
|
||||
瀑布项目wait状态执行统计 >> 8
|
||||
瀑布项目doing状态执行统计 >> 8
|
||||
看板项目wait状态执行统计 >> 6
|
||||
看板项目doing状态执行统计 >> 6
|
||||
敏捷项目done状态执行统计 >> 0
|
||||
敏捷项目closed状态执行统计 >> 0
|
||||
|
||||
*/
|
||||
|
||||
$projectIDList = array('11', '12', '41', '42', '71', '72');
|
||||
$status = array('wait', 'doing', 'done', 'closed');
|
||||
$count = array('0', '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
//var_dump($execution->getOrderedExecutionsTest($projectIDList[5],$status[1],$count[0]));die;
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[0],$status[0],$count[0])) && p('101:project,status,type') && e('11,wait,sprint'); //敏捷项目wait状态执行查看
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[1],$status[1],$count[0])) && p('102:project,status,type') && e('12,doing,sprint'); //敏捷项目doing状态执行查看
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[2],$status[0],$count[0])) && p('701:project,status,type') && e('41,wait,stage'); //瀑布项目wait状态执行查看
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[3],$status[1],$count[0])) && p('702:project,status,type') && e('42,doing,stage'); //瀑布项目doing状态执行查看
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[4],$status[0],$count[0])) && p('161:project,status,type') && e('71,wait,kanban'); //看板项目wait状态执行查看
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[5],$status[1],$count[0])) && p('162:project,status,type') && e('72,doing,kanban'); //看板项目doing状态执行查看
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[0],$status[0],$count[1])) && p() && e('7'); //敏捷项目wait状态执行统计
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[1],$status[1],$count[1])) && p() && e('7'); //敏捷项目doing状态执行统计
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[2],$status[0],$count[1])) && p() && e('8'); //瀑布项目wait状态执行统计
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[3],$status[1],$count[1])) && p() && e('8'); //瀑布项目doing状态执行统计
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[4],$status[0],$count[1])) && p() && e('6'); //看板项目wait状态执行统计
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[5],$status[1],$count[1])) && p() && e('6'); //看板项目doing状态执行统计
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[0],$status[2],$count[1])) && p() && e('0'); //敏捷项目done状态执行统计
|
||||
r($execution->getOrderedExecutionsTest($projectIDList[0],$status[3],$count[1])) && p() && e('0'); //敏捷项目closed状态执行统计
|
||||
33
test/model/execution/getPairs.php
Executable file
33
test/model/execution/getPairs.php
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getPairsTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷项目执行查看 >> 迭代1
|
||||
瀑布项目执行查看 >> 阶段121
|
||||
看板项目执行查看 >> 看板61
|
||||
敏捷项目执行统计 >> 7
|
||||
敏捷项目执行统计 >> 8
|
||||
敏捷项目执行统计 >> 6
|
||||
|
||||
*/
|
||||
|
||||
$projectIDList = array('11', '41', '71');
|
||||
$count = array('0','1');
|
||||
$noRealEnd = array('realEnd' => '');
|
||||
$readjustTime = array('readjustTime' => '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getPairsTest($projectIDList[0],$count[0])) && p('101') && e('迭代1'); // 敏捷项目执行查看
|
||||
r($execution->getPairsTest($projectIDList[1],$count[0])) && p('221') && e('阶段121'); // 瀑布项目执行查看
|
||||
r($execution->getPairsTest($projectIDList[2],$count[0])) && p('161') && e('看板61'); // 看板项目执行查看
|
||||
r($execution->getPairsTest($projectIDList[0],$count[1])) && p() && e('7'); // 敏捷项目执行统计
|
||||
r($execution->getPairsTest($projectIDList[1],$count[1])) && p() && e('8'); // 敏捷项目执行统计
|
||||
r($execution->getPairsTest($projectIDList[2],$count[1])) && p() && e('6'); // 敏捷项目执行统计
|
||||
22
test/model/execution/getProductGroupListTest.php
Executable file
22
test/model/execution/getProductGroupListTest.php
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getProductGroupListTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询当前用户访问的产品相关项目集 >> 项目集10
|
||||
查询当前用户访问的产品相关数量 >> 101
|
||||
|
||||
*/
|
||||
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getProductGroupListTest($count[0])) && p('9:name') && e('项目集10'); // 查询当前用户访问的产品相关项目集
|
||||
r($execution->getProductGroupListTest($count[1])) && p() && e('101'); // 查询当前用户访问的产品相关数量
|
||||
32
test/model/execution/getRelatedExecutions.php
Executable file
32
test/model/execution/getRelatedExecutions.php
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getRelatedExecutionsTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查询敏捷执行关联查询 >> 项目1
|
||||
查询瀑布执行关联查询 >> 项目36
|
||||
查询看板执行关联查询 >> 项目57
|
||||
查询敏捷执行关联统计 >> 22
|
||||
查询瀑布执行关联统计 >> 26
|
||||
查询看板执行关联统计 >> 22
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101','146', '617');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
//var_dump($execution->getRelatedExecutionsTest($executionIDList[2],$count[0]));die;
|
||||
r($execution->getRelatedExecutionsTest($executionIDList[0],$count[0])) && p('11') && e('项目1'); // 查询敏捷执行关联查询
|
||||
r($execution->getRelatedExecutionsTest($executionIDList[1],$count[0])) && p('46') && e('项目36'); // 查询瀑布执行关联查询
|
||||
r($execution->getRelatedExecutionsTest($executionIDList[2],$count[0])) && p('67') && e('项目57'); // 查询看板执行关联查询
|
||||
r($execution->getRelatedExecutionsTest($executionIDList[0],$count[1])) && p() && e('22'); // 查询敏捷执行关联统计
|
||||
r($execution->getRelatedExecutionsTest($executionIDList[1],$count[1])) && p() && e('26'); // 查询瀑布执行关联统计
|
||||
r($execution->getRelatedExecutionsTest($executionIDList[2],$count[1])) && p() && e('22'); // 查询看板执行关联统计
|
||||
80
test/model/execution/getTasks.php
Executable file
80
test/model/execution/getTasks.php
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getTasksTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行任务查询 >> 101,开发任务11
|
||||
瀑布执行任务查询 >> 131,41
|
||||
看板执行任务查询 >> 161,done
|
||||
正常产品查询任务 >> 101,开发任务11
|
||||
unclosed任务查询 >> 101,wait
|
||||
wait任务查询 >> 101,wait
|
||||
doing任务查询 >> 101,doing
|
||||
undone任务查询 >> 101,doing
|
||||
done任务查询 >> 101,done
|
||||
根据查询条件查询任务 >> 101,开发任务11
|
||||
根据模块查询任务 >> 101,21
|
||||
name_asc,id_asc排序查询 >> 101,开发任务11
|
||||
id_asc排序查询 >> 101,design
|
||||
pri_desc,id_desc排序查询 >> 101,wait
|
||||
敏捷执行任务查询统计 >> 4
|
||||
瀑布执行任务查询统计 >> 4
|
||||
看板执行任务查询统计 >> 4
|
||||
正常产品查询任务统计 >> 1
|
||||
unclosed任务查询统计 >> 4
|
||||
wat任务查询统计 >> 2
|
||||
doing任务查询统计 >> 1
|
||||
undone任务查询统计 >> 3
|
||||
done任务查询统计 >> 1
|
||||
根据查询条件查询任务统计 >> 1
|
||||
根据模块查询任务统计 >> 2
|
||||
name_asc,id_asc排序查询统计 >> 4
|
||||
id_asc排序查询统计 >> 4
|
||||
pri_desc,id_desc排序查询统计 >> 4
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('0', '101', '131', '161');
|
||||
$productIDList = array('0', '1');
|
||||
$browseType = array('all', 'unclosed', 'wait', 'doing', 'undone', 'done', 'closed', 'bysearch');
|
||||
$queryID = array('0', '1');
|
||||
$moduleID = array('0', '21', '22');
|
||||
$sort = array('status,id_desc', 'name_asc,id_asc', 'id_asc', 'pri_desc,id_desc');
|
||||
$count = array('0', '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('1:execution,name') && e('101,开发任务11'); // 敏捷执行任务查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[2],$browseType[0],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('693:execution,project') && e('131,41'); // 瀑布执行任务查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[3],$browseType[0],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('783:execution,status') && e('161,done'); // 看板执行任务查询
|
||||
r($execution->getTasksTest($productIDList[1],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('1:execution,name') && e('101,开发任务11'); // 正常产品查询任务
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[1],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('1:execution,status') && e('101,wait'); // unclosed任务查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[2],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('601:execution,status') && e('101,wait'); // wait任务查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[3],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('602:execution,status') && e('101,doing'); // doing任务查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[4],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('602:execution,status') && e('101,doing'); // undone任务查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[5],$queryID[0],$moduleID[0],$sort[0],$count[0])) && p('603:execution,status') && e('101,done'); // done任务查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[7],$queryID[1],$moduleID[0],$sort[0],$count[0])) && p('1:execution,name') && e('101,开发任务11'); // 根据查询条件查询任务
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[1],$sort[0],$count[0])) && p('601:execution,module') && e('101,21'); // 根据模块查询任务
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[1],$count[0])) && p('1:execution,name') && e('101,开发任务11'); // name_asc,id_asc排序查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[2],$count[0])) && p('601:execution,type') && e('101,design'); // id_asc排序查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[3],$count[0])) && p('1:execution,status') && e('101,wait'); // pri_desc,id_desc排序查询
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('4'); // 敏捷执行任务查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[2],$browseType[0],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('4'); // 瀑布执行任务查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[3],$browseType[0],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('4'); // 看板执行任务查询统计
|
||||
r($execution->getTasksTest($productIDList[1],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('1'); // 正常产品查询任务统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[1],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('4'); // unclosed任务查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[2],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('2'); // wat任务查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[3],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('1'); // doing任务查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[4],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('3'); // undone任务查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[5],$queryID[0],$moduleID[0],$sort[0],$count[1])) && p() && e('1'); // done任务查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[7],$queryID[1],$moduleID[0],$sort[0],$count[1])) && p() && e('1'); // 根据查询条件查询任务统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[1],$sort[0],$count[1])) && p() && e('2'); // 根据模块查询任务统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[1],$count[1])) && p() && e('4'); // name_asc,id_asc排序查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[2],$count[1])) && p() && e('4'); // id_asc排序查询统计
|
||||
r($execution->getTasksTest($productIDList[0],$executionIDList[1],$browseType[0],$queryID[0],$moduleID[0],$sort[3],$count[1])) && p() && e('4'); // pri_desc,id_desc排序查询统计
|
||||
31
test/model/execution/getTasks2Imported.php
Executable file
31
test/model/execution/getTasks2Imported.php
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getTasks2ImportedTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行任务查看 >> 更多任务1
|
||||
瀑布执行任务查看 >> test
|
||||
看板执行任务查看 >> wait
|
||||
敏捷执行任务统计 >> 3
|
||||
敏捷执行任务统计 >> 3
|
||||
敏捷执行任务统计 >> 3
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getTasks2ImportedTest($executionIDList[0],$count[0])) && p('601:name') && e('更多任务1'); // 敏捷执行任务查看
|
||||
r($execution->getTasks2ImportedTest($executionIDList[1],$count[0])) && p('691:type') && e('test'); // 瀑布执行任务查看
|
||||
r($execution->getTasks2ImportedTest($executionIDList[2],$count[0])) && p('61:status') && e('wait'); // 看板执行任务查看
|
||||
r($execution->getTasks2ImportedTest($executionIDList[0],$count[1])) && p() && e('3'); // 敏捷执行任务统计
|
||||
r($execution->getTasks2ImportedTest($executionIDList[1],$count[1])) && p() && e('3'); // 敏捷执行任务统计
|
||||
r($execution->getTasks2ImportedTest($executionIDList[2],$count[1])) && p() && e('3'); // 敏捷执行任务统计
|
||||
34
test/model/execution/getToImport.php
Executable file
34
test/model/execution/getToImport.php
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getToImportTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行查询 >> 迭代1
|
||||
瀑布执行查询 >> 阶段31
|
||||
看板执行查询 >> 看板61
|
||||
敏捷执行统计 >> 2
|
||||
瀑布执行统计 >> 2
|
||||
看板执行统计 >> 2
|
||||
|
||||
*/
|
||||
|
||||
$sprintExecutions = array('101', '102');
|
||||
$stageExecutions = array('131', '132');
|
||||
$kanbanExecutions = array('161', '162');
|
||||
$type = array('sprint', 'stage', 'kanban');
|
||||
$count = array('0', '1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->getToImportTest($sprintExecutions,$type[0],$count[0])) && p('101') && e('迭代1'); // 敏捷执行查询
|
||||
r($execution->getToImportTest($stageExecutions,$type[1],$count[0])) && p('131') && e('阶段31'); // 瀑布执行查询
|
||||
r($execution->getToImportTest($kanbanExecutions,$type[2],$count[0])) && p('161') && e('看板61'); // 看板执行查询
|
||||
r($execution->getToImportTest($sprintExecutions,$type[0],$count[1])) && p('') && e('2'); // 敏捷执行统计
|
||||
r($execution->getToImportTest($stageExecutions,$type[1],$count[1])) && p('') && e('2'); // 瀑布执行统计
|
||||
r($execution->getToImportTest($kanbanExecutions,$type[2],$count[1])) && p('') && e('2'); // 看板执行统计
|
||||
32
test/model/execution/getTree.php.BAK
Executable file
32
test/model/execution/getTree.php.BAK
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->getTreeTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关闭 >> status,wait,getTreed
|
||||
瀑布执行关闭 >> status,doing,getTreed
|
||||
看板执行关闭 >> status,doing,getTreed
|
||||
不输入实际完成时间校验 >> 『realEnd』不能为空。
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('601','146', '617', '121');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
var_dump($execution->getTreeTest($executionIDList[0],$count[0]));die;
|
||||
r($execution->getTreeTest($executionIDList[0],$count[0])) && p('91') && e('0,101,102'); // 敏捷项目下根据执行查询产品分支
|
||||
r($execution->getTreeTest($executionIDList[1],$count[0])) && p('46') && e('0,11,12'); // 瀑布项目下根据执行查询产品分支
|
||||
r($execution->getTreeTest($executionIDList[2],$count[0])) && p('57') && e('0,33,34'); // 看板项目下根据执行查询产品分支
|
||||
r($execution->getTreeTest($executionIDList[3],$count[0])) && p('21') && e('0'); // 非分支产品执行查询产品分支
|
||||
r($execution->getTreeTest($executionIDList[0],$count[1])) && p() && e('3'); // 敏捷执行关联产品分支统计
|
||||
r($execution->getTreeTest($executionIDList[1],$count[1])) && p() && e('2'); // 瀑布执行关联产品分支统计
|
||||
r($execution->getTreeTest($executionIDList[2],$count[1])) && p() && e('2'); // 看板执行关联产品分支统计
|
||||
r($execution->getTreeTest($executionIDList[3],$count[1])) && p() && e('2'); // 正常产品分支统计
|
||||
34
test/model/execution/importBug.php
Executable file
34
test/model/execution/importBug.php
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->importBugTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
预计输入错误 >> 最初预计"必须为数字
|
||||
Bug转任务统计 >> 4
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
$import = array('273' => '273', '3' => '3', '2' => '2', '1' => '1');
|
||||
$id = array('273' => '273', '3' => '3', '2' => '2', '1' => '1');
|
||||
$pri = array('273' => '1', '3' => '1', '2' => '2', '1' => '2');
|
||||
$errorestimate = array('273' => '2020-03-01', '3' => '2020-03-02', '2' => '2020-03-02', '1' => '2020-03-03');
|
||||
$estimate = array('273' => '7', '3' => '6', '2' => '5', '1' => '4');
|
||||
$deadline = array('273' => '2020-03-17', '3' => '2020-03-17', '2' => '2020-03-18', '1' => '2020-03-19');
|
||||
$count = array('0','1');
|
||||
|
||||
$errorimport = array('import' => $import, 'id' => $id, 'pri' => $pri, 'estimate' => $errorestimate, 'deadline' => $deadline);
|
||||
$importBugs = array('import' => $import, 'id' => $id, 'pri' => $pri, 'estimate' => $estimate, 'deadline' => $deadline);
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->importBugTest($executionIDList[0], $count[0], $errorimport)) && p('message:0') && e('最初预计"必须为数字'); // 预计输入错误
|
||||
r($execution->importBugTest($executionIDList[0], $count[1], $importBugs)) && p() && e('4'); // Bug转任务统计
|
||||
|
||||
system("./ztest init");
|
||||
33
test/model/execution/importTask.php
Executable file
33
test/model/execution/importTask.php
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->importTaskTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行导入任务 >> 91,641
|
||||
瀑布执行导入任务 >> 32,672
|
||||
敏捷执行导入任务统计 >> 5
|
||||
瀑布执行导入任务统计 >> 5
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('641','672');
|
||||
$sprintTaskIDlist = array('181', '91', '871', '872');
|
||||
$stageTaskIDlist = array('122', '32', '694', '695');
|
||||
$sprintTasks = array('tasks' => $sprintTaskIDlist);
|
||||
$stageTasks = array('tasks' => $stageTaskIDlist);
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->importTaskTest($executionIDList[0], $count[0], $sprintTasks)) && p('0:id,execution') && e('91,641'); // 敏捷执行导入任务
|
||||
r($execution->importTaskTest($executionIDList[1], $count[0], $stageTasks)) && p('0:id,execution') && e('32,672'); // 瀑布执行导入任务
|
||||
r($execution->importTaskTest($executionIDList[0], $count[1], $sprintTasks)) && p() && e('5'); // 敏捷执行导入任务统计
|
||||
r($execution->importTaskTest($executionIDList[1], $count[1], $stageTasks)) && p() && e('5'); // 瀑布执行导入任务统计
|
||||
|
||||
system("./ztest init");
|
||||
35
test/model/execution/linkCases.php
Executable file
35
test/model/execution/linkCases.php
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->linkCasesTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关联用例 >> 101,1,1
|
||||
瀑布执行关联用例 >> 131,43,169
|
||||
看板执行关联用例 >> 161,68,269
|
||||
敏捷执行关联用例统计 >> 4
|
||||
瀑布执行关联用例统计 >> 4
|
||||
看板执行关联用例统计 >> 4
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
$stories = array('2', '170', '270');
|
||||
$products = array('1', '43', '68');
|
||||
$count = array('0','1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->linkCasesTest($executionIDList[0], $count[0], $products[0], $stories[0])) && p('0:project,product,case') && e('101,1,1'); // 敏捷执行关联用例
|
||||
r($execution->linkCasesTest($executionIDList[1], $count[0], $products[1], $stories[1])) && p('0:project,product,case') && e('131,43,169'); // 瀑布执行关联用例
|
||||
r($execution->linkCasesTest($executionIDList[2], $count[0], $products[2], $stories[2])) && p('0:project,product,case') && e('161,68,269'); // 看板执行关联用例
|
||||
r($execution->linkCasesTest($executionIDList[0], $count[1], $products[0], $stories[0])) && p() && e('4'); // 敏捷执行关联用例统计
|
||||
r($execution->linkCasesTest($executionIDList[1], $count[1], $products[1], $stories[1])) && p() && e('4'); // 瀑布执行关联用例统计
|
||||
r($execution->linkCasesTest($executionIDList[2], $count[1], $products[2], $stories[2])) && p() && e('4'); // 看板执行关联用例统计
|
||||
|
||||
system("./ztest init");
|
||||
37
test/model/execution/linkStory.php
Executable file
37
test/model/execution/linkStory.php
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->linkStoryTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行关联需求 >> 101,1,4
|
||||
瀑布执行关联需求 >> 131,1,4
|
||||
看板执行关联需求 >> 161,1,4
|
||||
敏捷执行关联需求统计 >> 3
|
||||
瀑布执行关联需求统计 >> 3
|
||||
看板执行关联需求统计 >> 3
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
$stories = array('4', '324', '364');
|
||||
$products = array('4' => '1', '324' => '81', '364' => '91');
|
||||
$count = array('0','1');
|
||||
|
||||
$story = array('stories' => $stories, 'products' => $products);
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->linkStoryTest($executionIDList[0], $count[0], $story)) && p('0:project,product,story') && e('101,1,4'); // 敏捷执行关联需求
|
||||
r($execution->linkStoryTest($executionIDList[1], $count[0], $story)) && p('0:project,product,story') && e('131,1,4'); // 瀑布执行关联需求
|
||||
r($execution->linkStoryTest($executionIDList[2], $count[0], $story)) && p('0:project,product,story') && e('161,1,4'); // 看板执行关联需求
|
||||
r($execution->linkStoryTest($executionIDList[0], $count[1], $story)) && p() && e('3'); // 敏捷执行关联需求统计
|
||||
r($execution->linkStoryTest($executionIDList[1], $count[1], $story)) && p() && e('3'); // 瀑布执行关联需求统计
|
||||
r($execution->linkStoryTest($executionIDList[2], $count[1], $story)) && p() && e('3'); // 看板执行关联需求统计
|
||||
|
||||
system("./ztest init");
|
||||
27
test/model/execution/putoff.php
Executable file
27
test/model/execution/putoff.php
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->putoffTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
wait执行延期 >> days,,5
|
||||
敏捷执行延期 >> status,doing,wait
|
||||
瀑布阶段延期 >> status,doing,wait
|
||||
看板执行延期 >> status,doing,wait
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '102', '132', '162');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->putoffTest($executionIDList[0])) && p('0:field,old,new') && e('days,,5'); // wait执行延期
|
||||
r($execution->putoffTest($executionIDList[1])) && p('0:field,old,new') && e('status,doing,wait'); // 敏捷执行延期
|
||||
r($execution->putoffTest($executionIDList[2])) && p('0:field,old,new') && e('status,doing,wait'); // 瀑布阶段延期
|
||||
r($execution->putoffTest($executionIDList[3])) && p('0:field,old,new') && e('status,doing,wait'); // 看板执行延期
|
||||
system("./ztest init");
|
||||
29
test/model/execution/start.php
Executable file
29
test/model/execution/start.php
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->startTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行开始 >> status,wait,doing
|
||||
瀑布阶段开始 >> status,wait,doing
|
||||
看板执行开始 >> status,wait,doing
|
||||
重复执行开始 >> 此任务已被启动,不能重复启动!
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161', '103');
|
||||
|
||||
$noRealBegan = array('realBegan' => '');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->startTest($executionIDList[0])) && p('1:field,old,new') && e('status,wait,doing'); // 敏捷执行开始
|
||||
r($execution->startTest($executionIDList[1])) && p('1:field,old,new') && e('status,wait,doing'); // 瀑布阶段开始
|
||||
r($execution->startTest($executionIDList[2])) && p('1:field,old,new') && e('status,wait,doing'); // 看板执行开始
|
||||
r($execution->startTest($executionIDList[0],$noRealBegan)) && p() && e('此任务已被启动,不能重复启动!'); // 重复执行开始
|
||||
system("./ztest init");
|
||||
24
test/model/execution/statRelatedData.php
Executable file
24
test/model/execution/statRelatedData.php
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->statRelatedDataTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
敏捷执行数据统计 >> 3
|
||||
瀑布执行数据统计 >> 4
|
||||
看板执行数据统计 >> 3
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->statRelatedDataTest($executionIDList[0])) && p('storyCount') && e('3'); // 敏捷执行数据统计
|
||||
r($execution->statRelatedDataTest($executionIDList[1])) && p('taskCount') && e('4'); // 瀑布执行数据统计
|
||||
r($execution->statRelatedDataTest($executionIDList[2])) && p('bugCount') && e('3'); // 看板执行数据统计
|
||||
33
test/model/execution/suspend.php
Executable file
33
test/model/execution/suspend.php
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
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
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('103', '104', '133', '134', '163', '164');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->suspendTest($executionIDList[0])) && p('0:field,old,new') && e('status,wait,suspended'); // wait敏捷执行挂起
|
||||
r($execution->suspendTest($executionIDList[1])) && p('0:field,old,new') && e('status,doing,suspended'); // doing敏捷执行挂起
|
||||
r($execution->suspendTest($executionIDList[2])) && p('0:field,old,new') && e('status,wait,suspended'); // wait瀑布执行挂起
|
||||
r($execution->suspendTest($executionIDList[3])) && p('0:field,old,new') && e('status,doing,suspended'); // doing瀑布执行挂起
|
||||
r($execution->suspendTest($executionIDList[4])) && p('0:field,old,new') && e('status,wait,suspended'); // wait看板执行挂起
|
||||
r($execution->suspendTest($executionIDList[5])) && p('0:field,old,new') && e('status,doing,suspended'); // doing看板执行挂起
|
||||
r($execution->suspendTest($executionIDList[0])) && p() && e('0'); // 挂起后再次挂起
|
||||
system("./ztest init");
|
||||
59
test/model/execution/update.php
Executable file
59
test/model/execution/update.php
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->update();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试重复迭代code >> 『迭代代号』已经有『project1』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
|
||||
测试修改迭代名称 >> name,迭代1,任务名修改
|
||||
测试修改迭代项目为瀑布项目 >> project,11,41
|
||||
测试修改迭代项目为看板项目 >> project,41,71
|
||||
测试修改迭代code >> code,project31,code修改
|
||||
测试修改迭代工作日 >> days,0,5
|
||||
测试修改迭代类型 >> Lifetime,,long
|
||||
测试修改迭代状态为wait >> status,wait,doing
|
||||
测试修改迭代状态为closed >> status,doing,closed
|
||||
测试修改名称为空 >> 『阶段名称』不能为空。
|
||||
测试修改code为空 >> 『迭代代号』不能为空。
|
||||
测试无修改 >> 没有数据更新
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101','131','251','4','5','6','7','8','9');
|
||||
$productIDList = array('2','82','92');
|
||||
|
||||
$changeName = array('name' => '迭代名修改', 'code' => '迭代名修改code');
|
||||
$changeStage = array('project' =>'41', 'code' => '修改code');
|
||||
$changeKanban = array('project' =>'71', 'code' => '修改code2');
|
||||
$changeKanban = array('project' =>'71', 'code' => '修改code3');
|
||||
$changeCode = array('code' => 'code修改');
|
||||
$changeDays = array('days' => '5');
|
||||
$changeLifetime = array('lifetime' => 'long');
|
||||
$changeDoing = array('status' => 'doing');
|
||||
$changeClosed = array('status' => 'closed');
|
||||
$noChange = array();
|
||||
$noName = array('name' => '');
|
||||
$noCode = array('code' => '');
|
||||
$repeatcode = array('name' => '迭代名修改1');
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->updateObject($executionIDList[0], $repeatcode)) && p('code:0') && e('『迭代代号』已经有『project1』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); // 测试重复迭代code
|
||||
r($execution->updateObject($executionIDList[0], $changeName)) && p('0:field,old,new') && e('name,迭代1,任务名修改'); // 测试修改迭代名称
|
||||
r($execution->updateObject($executionIDList[0], $changeStage)) && p('0:field,old,new') && e('project,11,41'); // 测试修改迭代项目为瀑布项目
|
||||
r($execution->updateObject($executionIDList[0], $changeKanban)) && p('0:field,old,new') && e('project,41,71'); // 测试修改迭代项目为看板项目
|
||||
r($execution->updateObject($executionIDList[1], $changeCode)) && p('0:field,old,new') && e('code,project31,code修改'); // 测试修改迭代code
|
||||
r($execution->updateObject($executionIDList[1], $changeDays)) && p('0:field,old,new') && e('days,0,5'); // 测试修改迭代工作日
|
||||
r($execution->updateObject($executionIDList[1], $changeLifetime)) && p('0:field,old,new') && e('lifetime,,long'); // 测试修改迭代类型
|
||||
r($execution->updateObject($executionIDList[1], $changeDoing)) && p('0:field,old,new') && e('status,wait,doing'); // 测试修改迭代状态为wait
|
||||
r($execution->updateObject($executionIDList[1], $changeClosed)) && p('0:field,old,new') && e('status,doing,closed'); // 测试修改迭代状态为closed
|
||||
r($execution->updateObject($executionIDList[1], $noName)) && p('name:0') && e('『阶段名称』不能为空。'); // 测试修改名称为空
|
||||
r($execution->updateObject($executionIDList[1], $noCode)) && p('code:0') && e('『迭代代号』不能为空。'); // 测试修改code为空
|
||||
r($execution->updateObject($executionIDList[1], $noChange)) && p() && e('没有数据更新'); // 测试无修改
|
||||
|
||||
system("./ztest init");
|
||||
40
test/model/execution/updateChilds.php
Executable file
40
test/model/execution/updateChilds.php
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->updateChildsTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
修改敏捷执行的父执行 >> 102,迭代2
|
||||
修改敏捷执行的父执行 >> 133,阶段33
|
||||
修改敏捷执行的父执行 >> 162,看板62
|
||||
修改敏捷执行的父执行 >> 2
|
||||
修改敏捷执行的父执行 >> 2
|
||||
修改敏捷执行的父执行 >> 2
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101', '131', '161');
|
||||
$sprintExecutionID = array('102', '103');
|
||||
$stageExecutionID = array('132', '133');
|
||||
$kanbanExecutionID = array('162', '163');
|
||||
$count = array('0','1');
|
||||
|
||||
$sprintChilds = array('childs' => $sprintExecutionID);
|
||||
$stageChilds = array('childs' => $stageExecutionID);
|
||||
$kanbanChilds = array('childs' => $kanbanExecutionID);
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->updateChildsTest($executionIDList[0], $count[0], $sprintChilds)) && p('0:id,name') && e('102,迭代2'); // 修改敏捷执行的父执行
|
||||
r($execution->updateChildsTest($executionIDList[1], $count[0], $stageChilds)) && p('1:id,name') && e('133,阶段33'); // 修改敏捷执行的父执行
|
||||
r($execution->updateChildsTest($executionIDList[2], $count[0], $kanbanChilds)) && p('0:id,name') && e('162,看板62'); // 修改敏捷执行的父执行
|
||||
r($execution->updateChildsTest($executionIDList[0], $count[1], $sprintChilds)) && p() && e('2'); // 修改敏捷执行的父执行
|
||||
r($execution->updateChildsTest($executionIDList[1], $count[1], $stageChilds)) && p() && e('2'); // 修改敏捷执行的父执行
|
||||
r($execution->updateChildsTest($executionIDList[2], $count[1], $kanbanChilds)) && p() && e('2'); // 修改敏捷执行的父执行
|
||||
|
||||
system("./ztest init");
|
||||
28
test/model/execution/updateProducts.php
Executable file
28
test/model/execution/updateProducts.php
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/execution.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试executionModel->updateProductsTest();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
测试修改敏捷执行关联产品 >> 2
|
||||
测试修改瀑布执行关联产品 >> 82
|
||||
测试修改看板执行关联产品 >> 92
|
||||
|
||||
*/
|
||||
|
||||
$executionIDList = array('101','131','251');
|
||||
$productIDlist = array('2','82','92');
|
||||
$products = array('products' => $productIDlist);
|
||||
|
||||
$execution = new executionTest();
|
||||
r($execution->updateProductsTest($executionIDList[0], $products)) && p('0:product') && e('2'); // 测试修改敏捷执行关联产品
|
||||
r($execution->updateProductsTest($executionIDList[1], $products)) && p('1:product') && e('82'); // 测试修改瀑布执行关联产品
|
||||
r($execution->updateProductsTest($executionIDList[2], $products)) && p('2:product') && e('92'); // 测试修改看板执行关联产品
|
||||
|
||||
system("./ztest init");
|
||||
@@ -24,6 +24,8 @@ switch($argv[1])
|
||||
break;
|
||||
case 'task':
|
||||
ztfRun('model/task');
|
||||
case 'execution':
|
||||
ztfRun('model/execution');
|
||||
break;
|
||||
case 'model':
|
||||
ztfRun('model');
|
||||
|
||||
Reference in New Issue
Block a user