diff --git a/trunk/db/update0.6.sql b/trunk/db/update0.6.sql index bd2802f048..4db719fa93 100644 --- a/trunk/db/update0.6.sql +++ b/trunk/db/update0.6.sql @@ -7,8 +7,9 @@ ADD `scriptedBy` VARCHAR( 30 ) NOT NULL AFTER `executeType` , ADD `scriptedDate` DATE NOT NULL AFTER `scriptedBy` , ADD `scriptStatus` VARCHAR( 30 ) NOT NULL AFTER `scriptedDate` , ADD `scriptLocation` VARCHAR( 255 ) NOT NULL AFTER `scriptStatus` , -ADD `linkCase` MEDIUMINT UNSIGNED NOT NULL AFTER `scriptLocation` ; -ALTER TABLE `zt_case` ADD `scope` VARCHAR( 30 ) NOT NULL ; +ADD `linkCase` VARCHAR( 255 ) NOT NULL AFTER `scriptLocation` ; + +ALTER TABLE `zt_case` ADD `stage` VARCHAR( 255 ) NOT NULL ; -- 2010-03-23 userQuery表。 CREATE TABLE `zentao`.`zt_userQuery` ( diff --git a/trunk/module/testcase/config.php b/trunk/module/testcase/config.php index 28097ae00a..a91b3ae1bd 100644 --- a/trunk/module/testcase/config.php +++ b/trunk/module/testcase/config.php @@ -3,20 +3,24 @@ global $lang; $config->testcase->search['module'] = 'testcase'; $config->testcase->search['fields']['id'] = $lang->testcase->id; $config->testcase->search['fields']['title'] = $lang->testcase->title; +$config->testcase->search['fields']['keywords'] = $lang->testcase->keywords; $config->testcase->search['fields']['openedBy'] = $lang->testcase->openedBy; $config->testcase->search['fields']['lastEditedBy'] = $lang->testcase->lastEditedBy; $config->testcase->search['fields']['status'] = $lang->testcase->status; $config->testcase->search['fields']['pri'] = $lang->testcase->pri; $config->testcase->search['fields']['type'] = $lang->testcase->type; +$config->testcase->search['fields']['stage'] = $lang->testcase->stage; $config->testcase->search['fields']['openedDate'] = $lang->testcase->openedDate; $config->testcase->search['fields']['lastEditedDate'] = $lang->testcase->lastEditedDate; $config->testcase->search['params']['title'] = array('operator' => 'include', 'control' => 'input', 'values' => ''); +$config->testcase->search['params']['keywords'] = array('operator' => 'include', 'control' => 'input', 'values' => ''); $config->testcase->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); $config->testcase->search['params']['lastEditedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); $config->testcase->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->statusList); $config->testcase->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->priList); $config->testcase->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->typeList); +$config->testcase->search['params']['stage'] = array('operator' => 'include', 'control' => 'select', 'values' => $lang->testcase->stageList); -$config->testcase->create->requiredFields = 'title'; -$config->testcase->edit->requiredFields = 'title'; +$config->testcase->create->requiredFields = 'title,type'; +$config->testcase->edit->requiredFields = 'title,type'; diff --git a/trunk/module/testcase/lang/zh-cn.php b/trunk/module/testcase/lang/zh-cn.php index e885145d8f..9796152227 100644 --- a/trunk/module/testcase/lang/zh-cn.php +++ b/trunk/module/testcase/lang/zh-cn.php @@ -40,6 +40,14 @@ $lang->testcase->lastEditedDate = '最后修改日期'; $lang->testcase->version = '用例版本'; $lang->testcase->result = '测试结果'; $lang->testcase->real = '实际情况'; +$lang->testcase->keywords = '关键词'; +$lang->testcase->executeType = '执行方式'; +$lang->testcase->scriptedBy = '由谁编写'; +$lang->testcase->scriptedDate = '编写日期'; +$lang->testcase->scriptedStatus = '脚本状态'; +$lang->testcase->scriptedLocation = '脚本位置'; +$lang->testcase->linkCase = '相关用例'; +$lang->testcase->stage = '适用阶段'; $lang->case = $lang->testcase; // 用于DAO检查时使用。因为case是系统关键字,所以无法定义该模块为case,只能使用testcase,但表还是使用的case。 $lang->testcase->stepID = '编号'; @@ -102,6 +110,14 @@ $lang->testcase->typeList['install'] = '安装部署'; $lang->testcase->typeList['security'] = '安全相关'; $lang->testcase->typeList['other'] = '其他'; +$lang->testcase->stageList[''] = ''; +$lang->testcase->stageList['unittest'] = '单元测试阶段'; +$lang->testcase->stageList['feature'] = '功能测试阶段'; +$lang->testcase->stageList['intergrate'] = '集成测试阶段'; +$lang->testcase->stageList['system'] = '系统测试阶段'; +$lang->testcase->stageList['smoke'] = '冒烟测试阶段'; +$lang->testcase->stageList['bvt'] = '版本验证阶段'; + $lang->testcase->statusList[''] = ''; $lang->testcase->statusList['normal'] = '正常'; $lang->testcase->statusList['blocked'] = '被阻塞'; diff --git a/trunk/module/testcase/model.php b/trunk/module/testcase/model.php index d81076c3b1..ef560197bc 100644 --- a/trunk/module/testcase/model.php +++ b/trunk/module/testcase/model.php @@ -47,8 +47,8 @@ class testcaseModel extends model ->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) ->remove('steps,expects') ->setDefault('story', 0) - ->stripTags('title') - ->specialChars('steps') + ->specialChars('title') + ->join('stage', ',') ->get(); $this->dao->insert(TABLE_CASE)->data($case)->autoCheck()->batchCheck($this->config->testcase->create->requiredFields, 'notempty')->exec(); if(!$this->dao->isError()) @@ -80,7 +80,8 @@ class testcaseModel extends model { $case = $this->dao->findById($caseID)->from(TABLE_CASE)->fetch(); foreach($case as $key => $value) if(strpos($key, 'Date') !== false and !(int)substr($value, 0, 4)) $case->$key = ''; - if($case->story) $case->storyTitle = $this->dao->findById($case->story)->from(TABLE_STORY)->fetch('title'); + if($case->story) $case->storyTitle = $this->dao->findById($case->story)->from(TABLE_STORY)->fetch('title'); + if($case->linkCase) $case->linkCaseTitles = $this->dao->select('id,title')->from(TABLE_CASE)->where('id')->in($case->linkCase)->fetchPairs(); if($version == 0) $version = $case->version; $case->steps = $this->dao->select('*')->from(TABLE_CASESTEP)->where('`case`')->eq($caseID)->andWhere('version')->eq($version)->fetchAll(); $case->files = $this->loadModel('file')->getByObject('case', $caseID); @@ -128,7 +129,8 @@ class testcaseModel extends model ->add('version', $version) ->setIF($this->post->story != false and $this->post->story != $oldCase->story, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) ->setDefault('story', 0) - ->stripTags('title') + ->specialChars('title') + ->join('stage', ',') ->remove('comment,steps,expects') ->get(); $this->dao->update(TABLE_CASE)->data($case)->autoCheck()->batchCheck($this->config->testcase->edit->requiredFields, 'notempty')->where('id')->eq((int)$caseID)->exec(); diff --git a/trunk/module/testcase/view/create.html.php b/trunk/module/testcase/view/create.html.php index e059830e22..8ab267c90a 100644 --- a/trunk/module/testcase/view/create.html.php +++ b/trunk/module/testcase/view/create.html.php @@ -29,22 +29,34 @@
| testcase->stepID;?> | @@ -71,12 +83,10 @@|||
|---|---|---|---|
| testcase->lblTypeAndPri;?> | -- testcase->typeList, '', 'class=select-2');?> - testcase->priList, '', 'class=select-2');?> - | +testcase->keywords;?> | +|
| testcase->module;?> | + | ||
| testcase->story;?> | +story, 'class=select-1');?> | +||
| testcase->type;?> | testcase->typeList, $case->type, 'class=select-1');?> | ||
| testcase->stage;?> | +testcase->stageList, $case->stage, "class='select-1' multiple='multiple'");?> | +||
| testcase->pri;?> | testcase->priList, $case->pri, 'class=select-1');?> @@ -114,8 +122,12 @@ | testcase->statusList, $case->status, 'class=select-1');?> | |
| testcase->story;?> | -story, 'class=select-1');?> | +testcase->keywords;?> | +keywords, 'class=text-1');?> | +
| testcase->linkCase;?> | +linkCase, 'class=text-1');?> | ||