* change the logic of getResutls by caseID or runID in testtask module.

This commit is contained in:
chencongzhi520@gmail.com
2011-10-30 01:49:03 +00:00
parent a5882303cc
commit c2deba9eb6
4 changed files with 47 additions and 43 deletions
+1 -1
View File
@@ -88,7 +88,7 @@ var moduleID = '<?php echo $moduleID;?>';
common::printLink('testcase', 'edit', "caseID=$case->id", $lang->testcase->buttonEdit);
common::printLink('testcase', 'delete', "caseID=$case->id", $lang->delete, 'hiddenwin');
common::printLink('testtask', 'runCase', "runID=0&caseID=$case->id&version=$case->version", $this->app->loadLang('testtask')->testtask->runCase, '', 'class="runcase"');
common::printLink('testtask', 'results', "runID=0&extras=caseID=$case->id,version=$case->version", $lang->testtask->results, '', 'class="results"');
common::printLink('testtask', 'results', "runID=0&caseID=$case->id", $lang->testtask->results, '', 'class="results"');
if(!($case->lastResult == 'fail' and common::printLink('bug', 'create', "product=$case->product&extra=caseID=$case->id,version=$case->version,runID=", $lang->testtask->createBug))) echo $lang->testtask->createBug;
?>
</td>
+6 -20
View File
@@ -341,34 +341,20 @@ class testtask extends control
* View test results of a test run.
*
* @param int $runID
* @param string $extras others params, forexample, caseID=10
* @param int $caseID
* @access public
* @return void
*/
public function results($runID, $extras = '')
public function results($runID, $caseID = 0)
{
/* Pares the extras */
$extras = str_replace(array(',', ' '), array('&', ''), $extras);
parse_str($extras);
if(isset($caseID))
if($caseID)
{
$results = $this->testtask->getResults(0, $caseID);
foreach($results as $result)
{
$relatedVersions[] = $result->version;
}
$relatedVersions = array_unique($relatedVersions);
$run->case = $this->loadModel('testcase')->getById($caseID, 1);
$run->case->steps = $this->dao->select('*')->from(TABLE_CASESTEP)->where('`case`')->eq($caseID)->andWhere('version')->in($relatedVersions)->fetchAll();
$this->view->results = $results;
$this->view->run = $run;
$this->view->case = $this->loadModel('testcase')->getByID($caseID);
$this->view->results = $this->testtask->getResults(0, $caseID);
}
else
{
$this->view->run = $this->testtask->getRunById($runID);
$this->view->case = $this->testtask->getRunById($runID)->case;
$this->view->results = $this->testtask->getResults($runID);
}
+28 -2
View File
@@ -273,13 +273,14 @@ class testtaskModel extends model
* Get results by runID or caseID
*
* @param int $runID
* @param int $caseID
* @access public
* @return array
*/
public function getResults($runID, $caseID = 0)
{
if($caseID != 0)
{
if($caseID > 0)
{
$results = $this->dao->select('*')->from(TABLE_TESTRESULT)->where('`case`')->eq($caseID)->orderBy('id desc')->fetchAll('id');
}
else
@@ -288,11 +289,36 @@ class testtaskModel extends model
}
if(!$results) return array();
$relatedVersions = array();
foreach($results as $result)
{
$relatedVersions[] = $result->version;
$runCaseID = $result->case;
}
$relatedVersions = array_unique($relatedVersions);
$relatedSteps = $this->dao->select('*')->from(TABLE_CASESTEP)
->beginIF($caseID)->where('`case`')->eq($caseID)->fi()
->beginIF($runID)->where('`case`')->eq($runCaseID)->fi()
->andWhere('version')->in($relatedVersions)
->fetchAll();
foreach($results as $resultID => $result)
{
$result->stepResults = unserialize($result->stepResults);
$results[$resultID] = $result;
foreach($relatedSteps as $key => $step)
{
if($result->version == $step->version)
{
$result->stepResults[$step->id]['desc'] = $step->desc;
$result->stepResults[$step->id]['expect'] = $step->expect;
}
}
}
return $results;
}
}
+12 -20
View File
@@ -1,6 +1,6 @@
<?php
/**
* The runrun view file of testtask of ZenTaoPMS.
* The resutls view file of testtask of ZenTaoPMS.
*
* @copyright Copyright 2009-2011 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
@@ -11,10 +11,10 @@
*/
?>
<?php include '../../common/view/header.lite.html.php';?>
<h1>CASE#<?php echo $run->case->id. $lang->colon . $run->case->title;?></h1>
<h1>CASE#<?php echo $case->id. $lang->colon . $case->title;?></h1>
<fieldset>
<legend><?php echo $lang->testcase->precondition;?></legend>
<?php echo $run->case->precondition;?>
<?php echo $case->precondition;?>
</fieldset>
<?php foreach($results as $result):?>
<table class='table-1'>
@@ -27,31 +27,23 @@
<th class='w-p20'><?php echo $lang->testcase->real;?></th>
</tr>
<?php
$relatedCaseSteps = array();
foreach($run->case->steps as $key => $step)
{
if($result->version == $step->version)
{
$relatedCaseSteps[] = $step;
}
}
foreach($relatedCaseSteps as $key => $step):
$i = 1;
foreach($result->stepResults as $key => $stepResult):
?>
<?php $stepResult = ''; if(!empty($result->stepResults)) $stepResult = (object)$result->stepResults[$step->id];?>
<tr>
<th><?php echo $key + 1;?></th>
<td><?php echo nl2br($step->desc);?></td>
<td><?php echo nl2br($step->expect);?></td>
<th><?php echo $i;?></th>
<td><?php echo nl2br($stepResult['desc']);?></td>
<td><?php echo nl2br($stepResult['expect']);?></td>
<?php if(!empty($result->stepResults)):?>
<td class='<?php echo $stepResult->result;?> a-center'><?php echo $lang->testcase->resultList[$stepResult->result];?></td>
<td><?php echo $stepResult->real;?></td>
<td class='<?php echo $stepResult['result'];?> a-center'><?php echo $lang->testcase->resultList[$stepResult['result']];?></td>
<td><?php echo $stepResult['real'];?></td>
</tr>
<?php if($stepResult->result == 'blocked' or $stepResult->result == 'fail') break;?>
<?php if($stepResult['result'] == 'blocked' or $stepResult['result'] == 'fail') break;?>
<?php else:?>
<td></td>
<td></td>
</tr>
<?php endif;?>
<?php endif; $i++;?>
<?php endforeach;?>
</table>
<?php endforeach;?>